python 线程锁_python 线程锁 -4

from atexit import register

from random import randrange

from threading import Thread, currentThread, Lock, current_thread, active_count

from time import ctime, sleep

class CleanOutputSet(set):

def __str__(self):

return ', '.join(x for x in self)

loops = (randrange(2, 5) for x in range(randrange(3, 7)))

lock = Lock()

remaining = CleanOutputSet()

def loop(nsec):

myname = current_thread().name

# lock.acquire() # 加锁

with lock:

remaining.add(myname)

print('[%s] Started %s' % (ctime(), myname))

sleep(nsec)

remaining.remove(myname)

print('[%s] Completed %s (%d sece)' % (ctime(), myname, nsec))

print('(remaining: %s)' % (remaining or 'NONE'))

# lock.release()

def main():

for pause in loops:

Thread(target=loop, args=(pause,)).start()

print(pause, 'aaa')

# 程序结束之前调用, exit() 方法调用之前

@register

def _atexit():

print(active_count()) # 当前线程数

print('all DONE at:', ctime())

main()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值