#使用100个线程往list中添加1000条数据,要求保证安全性,并正确记录数量

#使用100个线程往list中添加1000条数据,要求保证安全性,并正确记录数量

老铁们这样写可以吗?还请指点

number=0

lists = []

def works():

global lists

global number

for i in range(10):

lists.append(number)

number+=1

if len(lists)==1000:

return lists

if __name__ == '__main__':

t=ThreadPoolExecutor(max_workers=100)# 创建100个线程

start=time()

for i in range(100):

f=t.submit(works) # 启动线程干活

if len(f.result())!=0:

for result in f.result():

print(result)


回答:

list 操作是线程安全的,线程只管 append 就行了,最后 list 的长度就是记录数。

number+=1 反而不是线程安全的,因此多个线程同时累加同一个变量,结果是不可预知的。


回答:

list不需要global声明
多线程对全局变量修改不安全,就是那个number

以上是 #使用100个线程往list中添加1000条数据,要求保证安全性,并正确记录数量 的全部内容, 来源链接: utcz.com/a/40495.html

回到顶部