
from atexit import register
from threading import Thread, Lock, currentThread
from time import sleep, ctime
import random
lock = Lock()
print(type(lock))
def fun():
lock.acquire() # 加锁
for i in range(5):
print('Thread Name', '=', currentThread().name, 'i', '=', i)
sleep(random.randint(1, 5))
lock.release() # 释放锁
def main():
for i in range(3):
Thread(target=fun).start()
@register
def exit():
print('线程执行完毕: ', ctime())
main()<class '_thread.lock'>Thread Name = Thread-13 i = 0Thread Name = Thread-13 i = 1Thread Name = Thread-13 i = 2Thread Name = Thread-13 i = 3Thread Name = Thread-13 i = 4Thread Name = Thread-14 i = 0Thread Name = Thread-14 i = 1Thread Name = Thread-14 i = 2Thread Name = Thread-14 i = 3Thread Name = Thread-14 i = 4Thread Name = Thread-15 i = 0Thread Name = Thread-15 i = 1Thread Name = Thread-15 i = 2Thread Name = Thread-15 i = 3Thread Name = Thread-15 i = 4from atexit import register
from threading import Thread, Lock, currentThread
from time import sleep, ctime
import random
lock = Lock()
print(type(lock))
def fun():
# lock.acquire() # 加锁
for i in range(5):
print('Thread Name', '=', currentThread().name, 'i', '=', i)
sleep(random.randint(1, 5))
# lock.release() # 释放锁
def main():
for i in range(3):
Thread(target=fun).start()
@register
def exit():
print('线程执行完毕: ', ctime())
main()<class '_thread.lock'>Thread Name = Thread-16 i = 0Thread Name = Thread-17 i = 0Thread Name = Thread-18 i = 0Thread Name = Thread-16 i = 1Thread Name = Thread-17 i = 1Thread Name = Thread-18 i = 1Thread Name = Thread-17 i = 2Thread Name = Thread-16 i = 2Thread Name = Thread-17 i = 3Thread Name = Thread-18 i = 2Thread Name = Thread-18 i = 3Thread Name = Thread-18 i = 4Thread Name = Thread-17 i = 4Thread Name = Thread-16 i = 3Thread Name = Thread-16 i = 4原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。