python并发编程之进程、线程、协程的调度原理(六)
进程、线程和协程的调度和运行原理总结。 系列文章 python并发编程之threading线程(一) python并发编程之multiprocessing进程(二) python并发编程之asyncio协程(三) python并发编程之gevent协程(四) python并发编程之Queue线程、进程、协程通信(五) python并发编程之进程、线程、协程的调度原理(六) python并发编程之multiprocessing进程windows和linux环境的对比(七) 进程、线程的调度策略介绍 linux的操作系统详细调度策略可参考: http://blog.csdn.net/gatieme/article/details/51872659 linux中的进程主要有三种调度策略: 优先级调度:将进程分为普通进程和实时进程; 先进先出(队列)调度:实时进程先创建的先执行,直到遇到io或主动阻塞。 轮转调度(时间片):达到一定的CPU执行时间后强制切换; 多进程程序的调度其实还是线程的调度,线程才是CPU调度的基本单位;在同一个进程内线程切换不会产生进程切换,由一个进程内的线程切换到另一个进程内的线程时,将会引起进程切换。 引起进程or线程调度的原因 正在执行的进程执行完毕; 执行中进程发生阻塞;(如调用sleep) 执行中进程调用了P原语操作,从而因资源不足而被阻塞