首页 > 其他 > 详细

互斥锁

时间:2017-08-30 16:12:57      阅读:241      评论:0      收藏:0      [点我收藏+]

互斥锁,递归锁,信号量

以上都是进程(线程)锁,下面我就一一解释一下

最普通互斥锁

from threading import Thread,Lock
import time

def work():
    l.acquire()
    time.sleep(1)
    print(ok)
    l.release()

if __name__ == __main__:
    l = Lock()
    t_l = []
    start = time.time()
    for i in range(10):
        t = Thread(target=work)
        t_l.append(t)
        t.start()
    for t in t_l:
        t.join()
    print(time.time()-start)

看一下最后执行时间,如果没有互斥锁,线程是并行执行,时间在1s多点,而有互斥锁后,线程变成串行执行,时间是10s多点,

它有什么作用:保证同一时间只有一个进程(线程在修改数据,从而使修改的共享数据安全),也是为什么Cpython解释器不能在同一进程内真正意义上并发线程(GIL锁)

 

互斥锁

原文:http://www.cnblogs.com/fenglin0826/p/7453572.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!