GIL(全局解释器锁)与互斥锁

在GIL(全局解释器锁)与互斥锁的前提下,程序的运行过程分析

针对Cpython所拥有的GIL锁
作用:由于Cpython解释器在运行python文件时,
     Cpython进程与其运行文件所产生的主进程是一个进程(文件进程相当于Cpython的一个线程)
     线程的特点是数据资源是共享的,而多个线程又都要共享Cpython的解释权限,共享意味着竞争,有竞争数据就不安全,
     所以Cpython的GIL锁(Cpython的一个线程)
     就产生了,根本作用是,当python文件中的线程想要执行其代码,必须获得GIL权限,否则不能执行,
     所以cpu的多核优势也没有了,除非多开Cpython解释器或多进程,否则同时只能运行一个线程

互斥锁作用:
    互斥锁用于python文件运行进程(线程)时,使数据修改等操作的竞争变得有序化


猜你喜欢

转载自blog.51cto.com/3098885/2308463