码迷,mamicode.com
首页 > 其他好文 > 详细

同步锁

时间:2018-05-04 15:21:21      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:方法   创建   bsp   lease   lock   end   同步锁   全局   global   

‘‘‘
GIL:全局解释锁
  因为有GIL,所以,同一时刻,只有一个线程被cpu执行
    处理方法:多进程+协程
任务种类:IO密集型
     计算密集型
对于IO密集型的任务,Python的多线程时有意义的
          可以采用多进程+协程
对计算密集型的任务,Python的多线程就不推荐,Python就不适用了
‘‘‘


#   同步锁
import threading
import time


def sub():
    global  num

    lock.acquire()  # 加同步锁
    temp = num
    time.sleep(0.0005)
    num = temp -1
    lock.release() #释放锁

num = 100


l = []
lock = threading.Lock() #创建锁

for i in range(100):
    t = threading.Thread(target=sub)
    t.start()
    l.append(t)

for i in l:
    i.join()

print(num)

 

同步锁

标签:方法   创建   bsp   lease   lock   end   同步锁   全局   global   

原文地址:https://www.cnblogs.com/lhqlhq/p/8990535.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!