随笔分类 - Go
摘要:软件下载 https://golang.google.cn/https://dl.google.com/go/go1.19.3.linux-amd64.tar.gz 环境变量设置 export GOWKS=/data/wks/tpf export GOROOT=$GOWKS/app/go expor
阅读全文
摘要:var wg2 sync.WaitGroup wg2.Add(nums) xc :=0 parallelNum := plt.MaxParallel var waitCount int32 = 0 for i:=0;i<nums*lll;i=i+lll { begin: if i % 30 == 1
阅读全文
摘要:锁的使用 注意要成对,重点是代码中有分支或者异常返回的情况,这种情况要在异常返回前先释放锁 mysqlInstanceLock.Lock() slaveHostSql := "show slave hosts" ss1 := dc.SqlRes(DcServer, ip, port, msdb.Db
阅读全文
摘要:GO 学习资源 go 代理 GO 语言结构 GO 数字运算 GO 时间处理 GO 定时器 GO 异常处理 go recover让崩溃的程序继续执行 GO Exit Fatal panic GO 通过进程号输出运行运行信息 Channel go channel 概述 - 管道 版本控制 Go中包版本号
阅读全文
摘要:Exit() 应用程序(不只是函数)退出执行 defer 不会被执行(因为程序都退出了) log.Fatal() 输出打印内容 应用程序退出 defer 不会被执行 panic() 函数停止执行(不是应用程序) defer 被执行 逐层返回panic异常给它的调用者,若无处理,会一直到main函数,
阅读全文
摘要:package main import ( "fmt" "sync" "time" ) /** *ticker只要定义完成,从此刻开始计时,不需要任何其他的操作,每隔固定时间都会触发。 *timer定时器,是到固定时间后会执行一次 *如果timer定时器要每隔间隔的时间执行,实现ticker的效果,
阅读全文
摘要:比较大小 比较大小 先把当前时间格式化成相同格式的字符串,然后使用time的Before, After, Equal 方法即可. time1 := "2015-03-20 08:50:29" time2 := "2015-03-21 09:04:25" //先把时间字符串格式化成相同的时间类型 t1
阅读全文
摘要:大整数运算 // bigint project main.go package main import ( "fmt" "math" "math/big" ) func main() { // Here are some calculations with bigInts: im := big.Ne
阅读全文
摘要:GO 学习资源 go 代理 GO 语言结构 GO 数字运算 GO 时间处理 GO 定时器 GO 异常处理 go recover让崩溃的程序继续执行 GO Exit Fatal panic GO 通过进程号输出运行运行信息 Channel go channel 概述 - 管道
阅读全文
摘要:概述 unix/linux OS 的一个进程的输出可以是另一个进程的输入,这些进程使用stdin与stdout设备作为通道,在进程之间传递数据。 同样的,GO中有io.Reader与io.Writer两个接口,如果要对一个设备进行读/写,调用实现了这两个接口的方法即可。 GO对管道的支持 func
阅读全文
摘要:package main import ( "fmt" "log" ) func de() { //recover() //可以打印panic的错误信息 //fmt.Println(recover()) if err := recover(); err != nil { //产生了panic异常 f
阅读全文
摘要:安装参考 https://blog.csdn.net/huwh_/article/details/77169858 Go 1.5引入了vendor文件夹,其对语言使用,go命令没有任何影响。若某个路径下边包含vendor文件夹,则在某处引用包时,会优先搜索vendor文件夹下的包。 在Go 1.5开
阅读全文
摘要:go +方法 就实现了一个并发,但由于环境不同,需要对并发的个数进行限制,限制同一时刻并发的个数,后面称此为“并发限流”。 为什么要并发限流? 虽然GO M+P+G的方式号称可以轻松支持上万的并发,但并不代表你的环境就可以这么任性的不限制并发。 因为每个并发中都会消耗一定的资源,GO支持的起,系统环
阅读全文
摘要:精髓 将资源读进内存-->共享内存,一个个进程/线程进行处理,这是常见模式。go channel 是一种直接在进程/线程之间传递资源的方式,即以通信来共享内存。这便是go的精髓。 扩展-一些名词了解 Linux、IPC(进程间通信)、进程(六个状态)、线程、同步、异步、信号、管道、socket、消息
阅读全文
摘要:golang []byte转string golang中,字符切片[]byte转换成string最简单的方式是 package main import ( "fmt" _ "unsafe" ) func main() { bytes := []byte("I am byte array !") st
阅读全文
摘要:strings方法 index 判断子字符串或字符在父字符串中出现的位置(索引)Index 返回字符串 str 在字符串 s 中的索引( str 的第一个字符的索引),-1 表示字符串 s 不包含字符串 str :strings.Index(s, str string) int LastIndex
阅读全文
摘要:sync.WaitGroup提供了一种安全的多协程处理方法,内部使用race、atomic来处理,避免了资源竞争及锁的产生。 主要的方法有Add、Done、Wait,可以等待一组协程全部执行完毕后,主程序才继续往下执行。 代码示例: 输出结果
阅读全文
摘要:context.WithCancel返回两个有关联的对象,ctx与cancel,调用cancel发送一个空struct给ctx,ctx一旦接收到该对象后,就终止goroutine的执行;ctx是线程安全的,可以同时传递给多个goroutine,触发cancel时,取消所有goroutine的执行 p
阅读全文
摘要:注意事项 所谓的远程仓库指的是github,个人首次使用go mod在其他云仓库上尝试,并未成功,这浪费了我近2小时的时间; 如果你是初次尝试,那么除了github的地址换一下之外,其他的都按照示例操作,比如目录的创建,这也是我把我的操作步骤一个不拉地贴出来的原因,你只须按着做,必定成功; 如果你没
阅读全文
摘要:wikihttps://github.com/golang/go/wiki/Modules#how-to-prepare-for-a-release参考https://blog.csdn.net/benben_2015/article/details/82227338 go mod 之本地仓库搭建
阅读全文

浙公网安备 33010602011771号