差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
public:it:go [2022/01/19 14:18] – [学习笔记] oakfire | public:it:go [2022/11/10 12:37] (当前版本) – [Go Lang] oakfire | ||
---|---|---|---|
行 3: | 行 3: | ||
* [[https:// | * [[https:// | ||
* [[https:// | * [[https:// | ||
+ | * [[https:// | ||
===== 学习笔记 ===== | ===== 学习笔记 ===== | ||
行 168: | 行 169: | ||
* **goroutine** 是由 Go 运行时管理的轻量级线程。 | * **goroutine** 是由 Go 运行时管理的轻量级线程。 | ||
* 信道(**channel**)操作符 ''< | * 信道(**channel**)操作符 ''< | ||
- | ch := make(chan int) // 创建int值信道 | + | ch := make(chan int, 1) // 创建int值信道, 第二个参数为缓冲区大小 |
ch <- v // 将 v 发送至信道 ch。 | ch <- v // 将 v 发送至信道 ch。 | ||
v := < | v := < | ||
- | </ | + | </ |
+ | * 发送者可通过 '' | ||
+ | * 接收者可以通过表达式第二个参数来测试信道是否被关闭:若没有值可以接收且信道已被关闭,那么在执行完< | ||
+ | v, ok := < | ||
+ | * 循环 '' | ||
+ | * **select** 语句使一个 goroutine 协程可以等待多个通信操作。select 会阻塞到某个分支可以继续执行为止,这时就会执行该分支。当多个分支都准备好时会随机选择一个执行。如果有 '' | ||
+ | * '' | ||
* 了解该语言的编译/ | * 了解该语言的编译/ | ||
===== 剖析 ===== | ===== 剖析 ===== |