上一页 1 ··· 30 31 32 33 34 35 36 37 38 ··· 41 下一页
摘要: 1. 非缓冲和缓冲 package main import ( "fmt" "strconv" ) func main() { /* 非缓冲通道:make(chan T) 一次发送,一次接收,都是阻塞的 缓冲通道:make(chan T , capacity) 发送:缓冲区的数据满了,才会阻塞 接收 阅读全文
posted @ 2020-02-03 06:42 1769987233 阅读(307) 评论(0) 推荐(0)
摘要: 通道可以被认为是Goroutines通信的管道。类似于管道中的水从一端到另一端的流动,数据可以从一端发送到另一端,通过通道接收。 在前面讲Go语言的并发时候,我们就说过,当多个Goroutine想实现共享数据的时候,虽然也提供了传统的同步机制,但是Go语言强烈建议的是使用Channel通道来实现Go 阅读全文
posted @ 2020-02-03 05:28 1769987233 阅读(125) 评论(0) 推荐(0)
摘要: 1. 临界资源 package main import ( "fmt" "time" ) func main() { /* 临界资源: */ a := 1 go func() { a = 2 fmt.Println("goroutine中。。",a) }() a = 3 time.Sleep(1) 阅读全文
posted @ 2020-02-03 04:37 1769987233 阅读(248) 评论(0) 推荐(0)
摘要: package main import ( "fmt" "runtime" "time" ) //写在init函数里,main函数运行之前就先设置cpu func init() { //获取逻辑cpu的数量 fmt.Println("逻辑CPU的数量-->", runtime.NumCPU()) / 阅读全文
posted @ 2020-02-02 12:56 1769987233 阅读(164) 评论(0) 推荐(0)
摘要: package main import ( "fmt" ) func main() { /* 一个goroutine打印数字,另外一个goroutine打印字母,观察运行结果。。 并发的程序的运行结果,每次都不一定相同。 不同计算机设备执行,效果也不相同。 go语言的并发:go关键字 系统自动创建并 阅读全文
posted @ 2020-02-02 11:49 1769987233 阅读(120) 评论(0) 推荐(0)
摘要: 1. 进程、线程、协程 进程(Process),线程(Thread),协程(Coroutine,也叫轻量级线程) 进程 进程是一个程序在一个数据集中的一次动态执行过程,可以简单理解为“正在执行的程序”,它是CPU资源分配和调度的独立单位。 进程一般由程序、数据集、进程控制块三部分组成。我们编写的程序 阅读全文
posted @ 2020-02-02 11:25 1769987233 阅读(175) 评论(0) 推荐(0)
摘要: 1. ioutil包的方法 // Discard 是一个 io.Writer 接口,调用它的 Write 方法将不做任何事情 // 并且始终成功返回。 var Discard io.Writer = devNull(0) // ReadAll 读取 r 中的所有数据,返回读取的数据和遇到的错误。 / 阅读全文
posted @ 2020-02-02 11:06 1769987233 阅读(114) 评论(0) 推荐(0)
摘要: bufio 是通过缓冲来提高效率。 io操作本身的效率并不低,低的是频繁的访问本地磁盘的文件。所以bufio就提供了缓冲区(分配一块内存),读和写都先在缓冲区中,最后再读写文件,来降低访问本地磁盘的次数,从而提高效率。 简单的说就是,把文件读取进缓冲(内存)之后再读取的时候就可以避免文件系统的io 阅读全文
posted @ 2020-02-02 10:56 1769987233 阅读(145) 评论(0) 推荐(0)
摘要: 1. seek package main import ( "os" "log" "fmt" "io" ) func main() { /* Seek(offset int64, whence int) (int64, error),设置指针光标的位置 第一个参数:偏移量 第二个参数:如何设置 0: 阅读全文
posted @ 2020-02-02 10:28 1769987233 阅读(429) 评论(0) 推荐(0)
摘要: package main import ( "os" "io" "fmt" "io/ioutil" ) func main() { /* 拷贝文件: */ srcFile := "/Users/ruby/Documents/pro/a/guliang.jpeg" destFile := "gulia 阅读全文
posted @ 2020-02-02 10:10 1769987233 阅读(206) 评论(0) 推荐(0)
上一页 1 ··· 30 31 32 33 34 35 36 37 38 ··· 41 下一页