首页 > 学院 > 开发设计 > 正文

关于多进程与多线程

2019-11-08 02:20:40
字体:
来源:转载
供稿:网友
●Python的线程是操作系统线程。在linux上为pthread,在Windows上为Win thread,完全由操作系统调度线程的执行。一个python解释器进程内有一条主线程,以及多条用户程序的执行线程。即使在多核CPU平台上,由于GIL的存在,所以禁止多线程的并行执行。●Python解释器进程内的多线程是合作多任务方式执行。当一个线程遇到I/O任务时,将释放GIL。计算密集型(CPU-bound)的线程在执行大约100次解释器的计步(ticks)时,将释放GIL。计步(ticks)可粗略看作Python虚拟机的指令。计步实际上与时间片长度无关。可以通过sys.setcheckinterval()设置计步长度。●在单核CPU上,数百次的间隔检查才会导致一次线程切换。在多核CPU上,存在严重的线程颠簸(thrashing)。●Python 3.2开始使用新的GIL。●可以创建独立的进程来实现并行化。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表