如何在python的“线程”模块中指定线程数

时间:2019-03-01 08:52:17

标签: python python-3.x multithreading python-multithreading

我是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)使目标函数将结果写入文件是否有问题?多个线程可以同时写入吗?有什么预防措施可以避免出错?

1 个答案:

答案 0 :(得分:0)

  

1)如何在上面的代码中指定线程数?

range函数的参数是您的线程数。

  

2)使目标函数写入结果是否有任何问题   到文件?多个线程可以同时写入吗?在那儿   有什么预防措施可以避免出错?

是的,如果您不小心管理threader函数正在使用的数据结构,那么python中的多线程可能真的很奇怪。因此,在您的情况下,如果不执行write操作,则可以有多个线程将同一行写入文件。也就是说,您可能需要做的是将输入文件中的行放入queue中,然后将get行插入线程功能中并将其写入输出文件中。