python多线程,获取多线程的返回值
2017-12-18 17:40
531 查看
代码如下:
# coding=utf-8
import threading
from time import ctime, sleep
# 多线程如何返回值
class MyThread(threading.Thread):
def __init__(self,func,args=()):
super(MyThread,self).__init__()
self.func = func
self.args = args
def run(self):
self.result = self.func(*self.args)
def get_result(self):
try:
return self.result # 如果子线程不使用join方法,此处可能会报没有self.result的错误
except Exception:
return None
# 多线程
def music(func):
for i in range(2):
print ("I was listening to %s. %s" %(func,ctime()))
sleep(1)
def move(func):
for i in range(2):
print ("I was at the %s! %s" %(func,ctime()))
sleep(5)
def add(a, b):
#print ('a+b:', a+b)
return a+b
threads = []
t1 = threading.Thread(target=music, args=(u'爱情买卖',))
threads.append(t1)
t2 = threading.Thread(target=move, args=(u'阿凡达',))
threads.append(t2)
t3 = MyThread(add, args=(1,2,))
threads.append(t3)
if __name__ == '__main__':
for t in threads[:2]:
t.setDaemon(True)
t.start()
for t in threads[2:]:
t.setDaemon(True)
t.start()
print ("MyThread:a+b=%d ! %s" % (t.get_result(),ctime()))
print ("all over %s" %ctime())
输出结果:
# coding=utf-8
import threading
from time import ctime, sleep
# 多线程如何返回值
class MyThread(threading.Thread):
def __init__(self,func,args=()):
super(MyThread,self).__init__()
self.func = func
self.args = args
def run(self):
self.result = self.func(*self.args)
def get_result(self):
try:
return self.result # 如果子线程不使用join方法,此处可能会报没有self.result的错误
except Exception:
return None
# 多线程
def music(func):
for i in range(2):
print ("I was listening to %s. %s" %(func,ctime()))
sleep(1)
def move(func):
for i in range(2):
print ("I was at the %s! %s" %(func,ctime()))
sleep(5)
def add(a, b):
#print ('a+b:', a+b)
return a+b
threads = []
t1 = threading.Thread(target=music, args=(u'爱情买卖',))
threads.append(t1)
t2 = threading.Thread(target=move, args=(u'阿凡达',))
threads.append(t2)
t3 = MyThread(add, args=(1,2,))
threads.append(t3)
if __name__ == '__main__':
for t in threads[:2]:
t.setDaemon(True)
t.start()
for t in threads[2:]:
t.setDaemon(True)
t.start()
print ("MyThread:a+b=%d ! %s" % (t.get_result(),ctime()))
print ("all over %s" %ctime())
输出结果:
相关文章推荐
- python获取多线程及子线程的返回值
- Python多线程返回执行结果
- Python多线程爬虫获取电影下载链接
- python获取多线程的返回值
- Python3 获取ajax 返回内容
- 复习基础--JAVA多线程-获取函数返回结果
- python查询功能,查询文件内容,获取需要的部分并返回,很实用的
- (转)用python获取页面返回的cookie
- c++builder 多线程-创建 退出 及获取线程返回码
- Python多线程获取上证50成分股交易数据
- python 调用系统命令 获取返回内容
- python多线程获取内涵段子
- (补充)python oss获取指定目录下所有文件,并排序返回
- go 多线程获取url返回码
- python获取url的返回信息
- 多线程 : 使用 Future 获取线程返回结果
- python获取文件真实链接的方法,针对于302返回码
- python通过snmp协议运用多线程获取多台主机网卡信息,写入数据库
- 利用Future异步获取多线程的返回结果
- java多线程获取返回结果--Callable和Future示例