网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

线程锁,递归锁

线程锁,递归锁

站在用户的角度思考问题,与客户深入沟通,找到弥渡网站设计与弥渡网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站建设、成都做网站、企业官网、英文网站、手机端网站、网站推广、主机域名雅安服务器托管、企业邮箱。业务覆盖弥渡地区。

##线程锁应用

import time,threading
python中自己加锁了所以用不着!
def run(n):
    lock.acquire() #获取一把锁
    global  num
    num+=1
    lock.release() #释放锁

lock=threading.Lock()
num=0
loot=[] #创建一个空列表(存线程实例)
for i in range (50):
    t=threading.Thread(target=run,args=("t-%s"%i,))
    t.start()
    loot.append(t) #为了不阻塞后面的线程启动,不在这里join,先放到一个列表里

for t in loot:#循环线程实例列表,等待所有线程执行完毕
    t.join() #等待一个线程全部执行完再执行其他线程(把并程改成了串行)
print("-----ddddd-----",threading.current_thread(),threading.active_count())#看是否是主线程,活跃的线程数量
print("num:",num)

##递归锁的意思是相当于已过字典。。。每开一道门就存门对应的钥匙数据,退出时去字典找对应的门用的钥匙

def run1():
    print("grab the first part data")
    lock.acquire()
    global num
    num+=1
    lock.release()
    return num

def run2():
    print("grab the second part data")
    lock.acquire()
    global  num2
    num2+=1
    lock.release()
    return num2

def run3():
    lock.acquire()
    res=run1()
    print("----between run1 and run2-----")
    res2=run2()
    lock.release()
    print(res,res2)

num,num2=0,0
lock=threading.RLock() ##递归锁创建
for i in range(10):
    t=threading.Thread(target=run3)
    t.start()

while threading.active_count()!=1:
    print(threading.active_count())
else:
    print("------all threads done------")
    print(num,num2)

文章名称:线程锁,递归锁
本文网址:http://bjjierui.cn/article/picgsg.html

其他资讯