我是python多线程编程的新手。但是要在合理的时间内运行我的功能,我必须使用它。 在在线教程中,我找到了以下基本代码:
import threading
def f(id):
print ("thread function:",id)
return
for i in range(3):
t = threading.Thread(target=f, args=(i,))
t.start()
我得到的输出是:
thread function: 0
thread function: 1
thread function: 2
在我的实际程序中,我有参数,这是要从本地文件读取的行。我想将其传递给目标函数。目标函数执行一些任务,然后将结果也写入本地文件。
我的问题: 1)如何在上面的代码中指定线程数?
2)使目标函数将结果写入文件是否有问题?多个线程可以同时写入吗?有什么预防措施可以避免出错?
答案 0 :(得分:0)
1)如何在上面的代码中指定线程数?
range
函数的参数是您的线程数。
2)使目标函数写入结果是否有任何问题 到文件?多个线程可以同时写入吗?在那儿 有什么预防措施可以避免出错?
是的,如果您不小心管理threader
函数正在使用的数据结构,那么python中的多线程可能真的很奇怪。因此,在您的情况下,如果不执行write
操作,则可以有多个线程将同一行写入文件。也就是说,您可能需要做的是将输入文件中的行放入queue
中,然后将get
行插入线程功能中并将其写入输出文件中。>