全局解释器锁

全局解释器锁(Global Interpreter Lock)是计算机程序设计语言解释器用于同步线程的工具,使得在同一进程内任何时刻仅有一个线程在执行。常见例子有CPython(JPython不使用GIL)与Ruby MRI。
基础资料
  • 外文名:Global Interpreter Lock
  • 简介

    正文

    详情

    • 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。

    • 可以创建独立的进程来实现并行化。

    首页
    科技
    #贵族
    最新入驻
    贾科莫·普契尼
    Caroline Lufkin
    翁建宇
    相关阅读
    TCP客户端
    内容词条·3929人浏览
    pvc吊顶
    内容词条·1979人浏览
    电缆护套管
    内容词条·5424人浏览
    Next Generation Portable
    内容词条·6633人浏览
    PowerVR SGX543
    内容词条·5677人浏览
    网络新闻传送协议
    内容词条·119人浏览
    • 网站地图
    • |

    Copyright 2023 fuwu029.com赣ICP备2022008914号-4