# # -*- coding:utf-8 -*-
import time
import threading
class MyThread(threading.Thread):
def __init__(self, func, args, name=''):
threading.Thread.__init__(self)
self.name = name
self.func = func
self.args = args
self.result = self.func(*self.args)
def get_result(self):
try:
return self.result
except Exception:
return None
def called(name=''):
print('我被{}调用了'.format(name))
time.sleep(1)
return '我被{}调用完了'.format(name)
def main():
s_time = time.time()
thread = []
for i in range(5):
name = 'thread+{}'.format(str(i))
t = MyThread(called, (name, ), called.__name__) # 创建线程
thread.append(t)
for i in range(4):
thread[i].start() # 多线程排序执行
for i in range(4):
thread[i].join() # 阻塞主线程,直到所以现场运行结束
for i in range(4):
print(thread[i].get_result())
print('多线程耗时:', time.time()-s_time)
s_time = time.time()
for i in range(5):
name = 'thread+{}'.format(str(i))
called(name)
print('单线程耗时:', time.time() - s_time)
if __name__ == '__main__':
main()