【发布时间】:2021-06-14 04:50:49
【问题描述】:
我无法理解如何让简单的多线程在 python 中工作。这是我用 python 编写的一个简单脚本,它应该同时写入两个不同的文件:
from threading import Thread
import time
def function(file):
with open(file, 'w') as f:
i = 0
while i < 10:
print(file + ' printing ' + str(i))
f.write(str(i) + '\n')
time.sleep(0.4)
i += 1
if __name__ == '__main__':
thr1 = Thread(target=function('thr1.txt'))
thr2 = Thread(target=function('thr2.txt'))
thr1.start()
thr2.start()
这段代码运行的输出表明这些函数不是并行执行的,而是一个接一个地执行:
thr1.txt printing 0
thr1.txt printing 1
thr1.txt printing 2
thr1.txt printing 3
thr1.txt printing 4
thr1.txt printing 5
thr1.txt printing 6
thr1.txt printing 7
thr1.txt printing 8
thr1.txt printing 9
thr2.txt printing 0
thr2.txt printing 1
thr2.txt printing 2
thr2.txt printing 3
thr2.txt printing 4
thr2.txt printing 5
thr2.txt printing 6
thr2.txt printing 7
thr2.txt printing 8
thr2.txt printing 9
Process finished with exit code 0
我是否误解了 python 中多线程函数的基础知识,因为从我查看的资源来看,这似乎是它的完成方式?
【问题讨论】:
标签: python multithreading python-multithreading