
并发编程
golang并发编程专题
先生大才
The Times 03/Jan/2009 Chancellor on brink of second bailout for banks
展开
-
Go并发编程1-并发模型
文章目录一. 并发概念二. Go调度器三. MPG模型 一. 并发概念 1. 多核CPU 单核CPU主频接近4GHz时遇到瓶颈(能耗和散热),所以2005年4月Intel推出第一次双核奔腾CPU。 多核CPU就是在一枚处理器中集成两个或以上计算引擎(内核),以线程方式执行多任务。 单芯片多处理器即CMP,他分为同构和异构两类,异构如CPU和GPU的组合。 CMP通过总线共享的Cache结构或片上...原创 2019-12-19 18:05:29 · 381 阅读 · 0 评论 -
Go并发编程2-同步控制
文章目录1. 同步等待2. 互斥锁3. 读写锁4. 单例锁5. 条件锁6. 对象池7. 同步字典 Sync包简述: Package sync provides basic synchronization primitives such as mutual exclusion locks. Other than the Once and WaitGroup types, most are inte...原创 2019-12-19 18:07:33 · 170 阅读 · 0 评论 -
Go并发编程3-Channel通道
文章目录1. 非缓冲信道2. 缓冲信道3. 单向信道4. 多路复用5. 超时控制6. 并发控制7. 时间通道8. 优雅退出9. Feature模式10. 斐波那契 不同于传统的多线程并发模型使用共享内存来实现线程间通信的方式,golang 的哲学是通过 channel 进行协程(goroutine)之间的通信来实现数据共享: Do not communicate by sharing memory...原创 2019-12-19 18:13:35 · 386 阅读 · 0 评论 -
Go并发编程4-Context
文章目录1. 取消2. 超时3. 过期4. 传值 关于Context: 在WebServer中,每个请求都对应一个goroutine,同时还会启动若干goroutine去处理后端业务,如数据库、RPC服务、身份认证信息等。 当一个请求被 取消或超时 时,所有用来处理该请求的goroutine都应该迅速退出,然后系统才能释放这些goroutine占用的资源。 Context解析: cont...原创 2019-12-19 18:15:32 · 203 阅读 · 0 评论