python多线程模块threading简例
#!/usr/bin/python# -*- coding: utf-8 -*-from threading import Threadfrom datetime import datetimedef dotest(str):print str,datetime.now()class mythread(Thread):def __init__(self, ta
·
#!/usr/bin/python
# -*- coding: utf-8 -*-
from threading import Thread
from datetime import datetime
def dotest(str):
print str,datetime.now()
class mythread(Thread):
def __init__(self, target, args, name='my name'):
Thread.__init__(self)
self.target = target
self.args = args
self.name = name
def run(self):
self.dosomething()
apply(self.target, self.args)
def dosomething(self):
print 'do something get ', self.getName()
if __name__ == '__main__':
teststr1 = ('string1',) ###传递给线程的参数一定是一个元组对象
teststr2 = ('string2',)
t1 = Thread(target=dotest, args=teststr1) ###第一种方法直接使用现有的线程模块
t2 = Thread(target=dotest, args=teststr2)
t1.start()
t1.join() ##join 有这个的话,下一句将不会被执行,一直到该线程的任务执行完成后,没有则不会等该进程而同步执行其它后续代码
t2.start()
t2.join() ##可以尝试去掉后看看输出结果
print 'done'
teststr3 = ('string3',)
t3 = mythread(target=dotest, args=teststr3) ###第二种是继续原来的Thread模块后定制自己实现一些功能
t3.start()
t3.join()
当然还有一个原始的thread模块,不过这个是最原始的线程模块,当然没有这个易用了。
更多推荐
已为社区贡献17条内容
所有评论(0)