讲的比较好的,连接
- channel是线程安全的。
- channel的阻塞本质上来说是看缓冲区满没满,无缓冲的channel可以看做缓冲区永远是满的 所以 读的时候 需要马上写 写的时候 需要马上读。
规则:
所以 无缓冲的channel无论读和写都会阻塞,直到向这个channel写或者读,所以 读和写不能存在于一个协程中,这样会造成程序的阻塞,无缓冲channel可以用来在两个协程之间传递数据;而缓冲为1的channel有一个协程向其中写入数据时,不会阻塞,其余的协程会阻塞,直到这个channel开始读,可以用来在协程中实现加锁的功能。