从线程迁移到线程

时间:2015-07-09 14:40:29

标签: python multithreading

在Python 2中,我使用模块thread轻松创建新线程,执行:

thread.start_new_thread(function_name, (arguments_tuple,)) 

我知道我可以在Python 3中运行相同的代码,除了我必须用import thread替换import _thread语句。但正如Python文档中所解释的那样:

  

此模块提供低级原语,用于处理多个   线程(也称为轻量级进程或任务) - 多个   共享其全局数据空间的控制线程。对于   同步,简单锁(也称为互斥锁或二进制)   提供信号量。 线程模块提供了更简单的方法   在此模块之上构建的使用和更高级别的线程API

如何将该段代码迁移到新模块语法?

1 个答案:

答案 0 :(得分:1)

新模块的目的地为OOP,因此threading的示例为:

import time
from threading import Thread

def sleeper(i):
    print "thread %d sleeps for 5 seconds" % i
    time.sleep(5)
    print "thread %d woke up" % i

for i in range(10):
    t = Thread(target=sleeper, args=(i,))
    t.start()

import thread更改为from threading import Thread,将start_new_thread(func, (args,)更改为Thread(target=func, args=(args,).start()即可。