标签: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
标签:queue 封装 linu 需要 抽象 其他 ioc window 实现
原文地址:http://www.cnblogs.com/pianowh/p/5985617.html