随笔分类 - go语言
摘要:1、Timer的使用 示例: #创建一个定时器,设置时间为2s,2s后,往time通道写内容(当前时间) 执行结果:
阅读全文
摘要:1、单向channel的应用 示例: 执行结果:
阅读全文
摘要:1、通过range遍历channel内容 执行结果:
阅读全文
摘要:1、有缓冲channel 示例: 有缓存会阻塞,当读取完其中数值时,又可以写入。 执行结果:
阅读全文
摘要:1、无缓冲channel 示例: 执行结果:
阅读全文
摘要:1、channel介绍 和map类似,channel也一个对应make创建的底层数据结构的引用。 当我们复制一个channel或用于函数参数传递时,我们只是拷贝了一个channel引用,因此调用者何被调用者将引用同一个channel对象。和其它的引用类型一样,channel的零值也是nil。 定义一
阅读全文
摘要:1、多任务资源竞争问题 示例: 执行结果: 程序执行过程: 一人打印一个字符,这样就乱了。
阅读全文
摘要:一、runtime包 1、Gosched的使用 runtime.Gosched() 用于让出CPU时间片,让出当前goroutine的执行权限,调度器安排其他等待的任务运行,并在下次某个时候从该位置恢复执行。 这就像跑接力赛,A跑了一会碰到代码runtime.Gosched() 就把接力棒交给B了,
阅读全文
摘要:1、主协程先退出导致子协程没来得及调用 示例: 执行结果
阅读全文
摘要:1、goroutine是什么 goroutine是Go并行设计的核心。goroutine说到底其实就是协程,但是它比线程更小,十几个goroutine可能体现在底层就是五六个线程,Go语言内部帮你实现了这些goroutine之间的内存共享。执行goroutine只需极少的栈内存(大概是4~5KB),
阅读全文
摘要:1、并行和并发的概念 并行(parallel):指在同一时刻,有多条指令在多个处理器上同时执行。 并发(concurrency):指在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果,但在微观上并不是同时执行的,只是把时间分成若干段,使多个进程快速交
阅读全文
摘要:1、文件案例:拷贝文件 示例: 执行结果: 拷贝效果如下:
阅读全文
摘要:1、借助bufio实现按行读取内容 示例: 执行结果:
阅读全文
摘要:1、read的使用(备注:读文件) 示例: #执行结果: (会生成一个demo.txt的文件)
阅读全文
摘要:1、WriteString的使用 示例: 执行结果: 生成一个demo.txt文件
阅读全文
摘要:一、文件常用操作接口介绍 1、创建文件 法1: 推荐用法 func Create(name string) (file *File, err Error) 根据提供的文件名创建新的文件,返回一个文件对象,默认权限是0666的文件,返回的文件对象是可读写的。 法2: 法2: 2、打开文件 法1: 法2
阅读全文