Go语言并发,Golang并发
并发指在同一时间内可以执行多个任务。并发编程含义比较广泛,包含多线程编程、多进程编程及分布式程序等。本章讲解的并发含义属于多线程编程。
Go 语言通过编译器运行时(runtime),从语言上支持了并发的特性。Go 语言的并发通过 goroutine 特性完成。goroutine 类似于线程,但是可以根据需要创建多个 goroutine 并发工作。goroutine 是由 Go 语言的运行时调度完成,而线程是由操作系统调度完成。
Go 语言还提供 channel 在多个 goroutine 间进行通信。goroutine 和 channel 是 Go 语言秉承的 CSP(Communicating Sequential Process)并发模式的重要实现基础。本章中,将详细为大家讲解 goroutine 和 channel 及相关特性。
Go 语言通过编译器运行时(runtime),从语言上支持了并发的特性。Go 语言的并发通过 goroutine 特性完成。goroutine 类似于线程,但是可以根据需要创建多个 goroutine 并发工作。goroutine 是由 Go 语言的运行时调度完成,而线程是由操作系统调度完成。
Go 语言还提供 channel 在多个 goroutine 间进行通信。goroutine 和 channel 是 Go 语言秉承的 CSP(Communicating Sequential Process)并发模式的重要实现基础。本章中,将详细为大家讲解 goroutine 和 channel 及相关特性。
- 本章内容:
- 1. Go语言并发简述(并发的优势)
- 2. Go语言goroutine(轻量级线程)
- 3. Go语言并发通信
- 4. Go语言竞争状态简述
- 5. Go语言GOMAXPROCS(调整并发的运行性能)
- 6. 并发和并行的区别
- 7. goroutine和coroutine的区别
- 8. Go语言通道(chan)——goroutine之间通信的管道
- 9. Go语言并发打印(借助通道实现)
- 10. Go语言单向通道——通道中的单行道
- 11. Go语言无缓冲的通道
- 12. Go语言带缓冲的通道
- 13. Go语言channel超时机制
- 14. Go语言通道的多路复用——同时处理接收和发送多个通道的数据
- 15. Go语言RPC(模拟远程过程调用)
- 16. Go语言使用通道响应计时器的事件
- 17. Go语言关闭通道后继续使用通道
- 18. Go语言多核并行化
- 19. Go语言Telnet回音服务器——TCP服务器的基本结构
- 20. Go语言竞态检测——检测代码在并发环境下可能出现的问题
- 21. Go语言互斥锁(sync.Mutex)和读写互斥锁(sync.RWMutex)
- 22. Go语言等待组(sync.WaitGroup)
- 23. Go语言死锁、活锁和饥饿概述
- 24. Go语言封装qsort快速排序函数
- 25. Go语言CSP:通信顺序进程简述
- 26. Go语言聊天服务器