self.res
def run(self):
print("starting ", self.name, " at: ", ctime())
self.res = self.func(self.args)
print(self.name, "finished at: ", ctime())
def main():
nfuncs = range(len(funcs))
print("单线程".center(30, "*"))
start = time()
for i in nfuncs:
print("start {} at: {}".format(funcs[i].__name__, ctime()))
start_task = time()
print(funcs[i](n))
end_task = time()
print("任务 耗时:", end_task-start_task)
print("{} finished at: {}".format(funcs[i].__name__, ctime()))
end = time()
print("单线程运行时间:", end-start)
print("单线程结束:".center(30, "*"))
print()
print("多线程".center(30, "*"))
start = time()
threads = []
for i in nfuncs:
# 一个线程绑定一个函数
t = MyThread(funcs[i], n, funcs[i].__name__)
threads.append(t)
for i in nfuncs:
# 同时启动线程
threads[i].start()
for i in nfuncs:
threads[i].join()
print(threads[i].getResult())
end = time()
print("多线程运行时间:", end-start)
print("多线程结束:".center(30, "*"))
print()
print("多进程".center(30, "*"))
start = time()
process_list = []
for i in nfuncs:
# 一个进程绑定一个函数
t = Process(target=funcs[i], args=(n, ))
process_list.append(t)
for i in nfuncs:
# 同时启动进程
process_list[i].start()
for i in nfuncs:
process_list[i].join()
end = time()
print("多进程运行时间:", end - start)
print("多进程结束:".center(30, "*"))
if __name__ == "__main__":
main()