码迷,mamicode.com
首页 > 其他好文 > 详细

对go的goroutine理解

时间:2016-10-21 20:07:08      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:queue   封装   linu   需要   抽象   其他   ioc   window   实现   

1.实际是go运行时自己控制线程数目(线程池),执行许多的task(goroutine),防止线程切换的开销,充分利用多核做并行计算

2.在io等需要等待的操作发生的时候go运行时切换task,但是线程不切换继续执行其他task,io完成后挂起的task重新参与调度

3.底层处理io的实现在windows下是iocp,在linux下是epoll,mac下是kqueue, golang自己封装了抽象层(这些都是这些操作系统下目前最优方案)。

 

背景知识自行脑补

1.线程切换的开销

2.epoll

3.iocp

对go的goroutine理解

标签:queue   封装   linu   需要   抽象   其他   ioc   window   实现   

原文地址:http://www.cnblogs.com/pianowh/p/5985617.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!