This website works better with JavaScript
Почетна
Преглед
Помоћ
Регистрација
Пријавите се
YWJL
/
GoLearn
Прати
1
Волим
0
Креирај огранак
0
Датотеке
Дискусије
0
Захтеви за спајање
0
Вики
Дрво:
c320ff84b6
Гране
Ознаке
master
GoLearn
/
Go语言核心36讲
/
10
/
read.md
read.md
1.5 KB
Историја
Датотека
通道的基本操作
0.资料
https://gfw.go101.org/article/channel.html
https://www.cnblogs.com/liang1101/p/7285955.html
https://www.cnblogs.com/sparkdev/p/10930168.html
1. 特性
对于同一个通道,发送操作之间是互斥的,接收操作之间也是互斥的。(入和出的互斥性)
发送操作和接收操作中对元素值的处理都是不可分割的。(入和出的原子性)
发送操作在完全完成之前会被阻塞。接收操作也是如此。
说明
通道类型值,本身是并发安全的
并发执行,是多个代码块分别在不同的 goroutine 之中,并有机会在同一个时间段内被执行。(并发不是同时执行)
通道分缓冲通道和非缓冲通道
2. panic
向已经关闭的channel写。
关闭已经关闭的channel。
3.阻塞
2. 协程(gorountine)
进程、线程(内核级线程)、协程(用户级线程)三个概念
进程、线程由内核调度,有CPU时间片的概念,有多种调度算法
协程(用户级线程)对内核透明,即系统不知道有协程的存在,是完全由用户自己的程序进行调度控制的。
https://learnku.com/articles/41405
Go 协程(goroutine)通过信道(channel)进行通信
。信道可以防止多个协程访问共享内存时发生资源争抢的问题。