我正在尝试学习abbout线程,特别是Python 我已经看到线程被生成为单/多
并且像它们只绑定到一个函数 它是如何工作的? 我可以让一个线程执行多项功能吗 或(显然是)一个功能有多个线程?
也可以说我在脚本中定义了多个函数 而且我想为每个线程分配一个线程,我是否必须遍历这段代码的第一部分 还是有另一种方法?
#example of single thread spawn
t = threading.Thread(target=somefunc,name="somename",args(arg1,arg1)
#example of multithread spwaning
for x in range(10)
t = threading.Thread(target=somefunc,name="somename",args(arg1,arg1)
t.start()
答案 0 :(得分:0)
该线程将执行创建target
时指定为Thread
的任何内容。因此,如果您想产生执行完全不同的事物的多个线程,则可以使用
t1 = threading.Thread(target=do_first_thing, args=(arg,))
t2 = threading.Thread(target=do_second_thing, args=(arg1, arg2))
t1.start()
t2.start()
如果您希望多个线程执行相同的操作,则可以例如
threads = []
for x in range(5):
t = threading.Thread(target=do_thing)
threads.append(t)
t.start()
或者如果您希望多个线程执行相同的操作,只是使用不同的参数
threads = []
for name in ("stackoverflow", "Faboor", "sadbot"):
t = threading.Thread(target=say_hello_to, args=(name,))
threads.append(t)
t.start()
但是,最好使用multiprocessing库中的Pool
,这样就不必管理自己的线程生命周期。