Go学习笔记六(并发编程)
来源:互联网 发布:网络购物英文翻译 编辑:程序博客网 时间:2024/04/29 16:30
- 认识goroutine
认识goroutine
//goroutine 是一个普通的函数,只是需要使用关键字 go 作为开头。ready("Tea", 2) ///← 普通函数调用go ready("Tea", 2) //← ready() 作为 goroutine 运行
package mainimport ( "fmt" "time")func ready(w string , sec int ) { time.Sleep(time.Duration(sec) * time.Second) fmt.Println(w, "is ready ! ") }func main() { go ready("Tea", 2) //启动了 goroutine go ready("Coffee", 1) //启动了 goroutine fmt.Println("I'm waiting") //如果不等待 goroutine 的执行,程序立刻终止,而任何正在执行 // 的 goroutine 都 会停止 time.Sleep(5 * time.Second) //等待5秒,等待goroutine退出 }// I'm waiting //← 立刻// Coffee is ready ! ///← 1 秒后// Tea is ready ! //← 2 秒后
为了解决上述问题,需要一些能够同 goroutine 通讯的机制。这一机制通过 channels 的形式使用
//必须使用 make 创建 channelci := make ( chan int ) //创建 channel ci 用于发送和接收整数cs := make ( chan string )//创建 channel cs 用于字符串cf := make ( chan interface {} )//channel cf使用了空接口来满足各种类型//向 channel 发送或接收数据ci <− 1 //← 发送 整数 1 到 channel ci<− ci //← 从 channel ci 接收 整数i := <− //ci ← 从 channel ci 接收 整数,并保存到 i 中
0 0
- Go学习笔记六(并发编程)
- go语言学习笔记之并发编程
- go语言学习笔记之并发编程
- Erlang 程序设计 学习笔记(六) 并发编程
- Go语言学习笔记(六)接口
- go基本语法学习笔记之并发编程
- 可视化学习Go并发编程
- go语言学习-并发编程
- 可视化学习Go并发编程
- Go语言学习笔记---并发
- Go 并发concurrency 学习笔记
- Go语言学习笔记-并发
- 并发编程实战学习笔记(六)——线程池的使用
- Java并发编程实战(学习笔记六 第七章 取消与关闭 上)
- Java并发编程实战(学习笔记六 第七章 取消与关闭 下)
- Go语言学习笔记(六) [包]
- 多线程编程学习笔记(六)
- Python核心编程学习笔记(六)
- 闭包
- 【Microsoft】Project Oxford
- usb-descriptor(三)
- nodejs+webpack的安装
- 安卓加载中对话框
- Go学习笔记六(并发编程)
- leetcode 392 Is Subsequence C++
- 免费升级win10系统方法
- 【JDBC】(3)获取查询结果集ResultSet
- 推荐算法
- Xcode8 Missing file 警告处理
- CUDA总结:纹理内存
- vmware合并多个虚拟硬盘文件
- new delete 运算符重载之 内存池申请