【问题标题】:Is it possible to assign to Thread to one func and vice versa in Python?是否可以在 Python 中将 Thread 分配给一个函数,反之亦然?
【发布时间】:2019-06-15 11:34:44
【问题描述】:

我正在尝试学习一般的线程和特定的 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()





【问题讨论】:

    标签: python multithreading python-2.7


    【解决方案1】:

    在创建Thread 时指定为target 的任何内容都是该线程将执行的内容。所以如果你想产生多个线程执行完全不同的事情,你可以这样做

    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,这样您就不必管理自己的线程生命周期。

    【讨论】:

      猜你喜欢
      • 2015-09-13
      • 2015-10-24
      • 1970-01-01
      • 2012-12-19
      • 1970-01-01
      • 1970-01-01
      • 2014-07-26
      • 1970-01-01
      • 2016-09-03
      相关资源
      最近更新 更多