import threading
import time
import random
lock = threading.Lock()
# 各线程需要操作的共享数据,这里放了个数组
my_list = []
def mydef(name):
time_sleep = random.randint(1, 20)
time.sleep(time_sleep)
aa = "名称:" + name + " 随机数:" + str(time_sleep)
print(aa)
lock.acquire()
# acquire和release方法之间放置对共享数据进行操作的代码,这里放了个将数据插入数组的操作
my_list.append(aa)
lock.release()
if __name__ == "__main__":
thread_list = []
for i in range(5):
thread_my = threading.Thread(target=mydef, args=("线程" + str(i),))
thread_list.append(thread_my)
thread_my.start()
for ii in thread_list:
ii.join()
# 对共享数据的后续使用,这个直接打印了
print(my_list)
python 多线程数据共享
最新推荐文章于 2024-02-17 23:22:27 发布
本文介绍了一个使用Python threading模块创建的线程池,各线程通过共享my_list数组进行数据交换。通过acquire和release锁来确保数据一致性。核心内容涉及并发编程、线程同步和共享资源管理。
摘要由CSDN通过智能技术生成