import threading from time import sleep, ctime loops = [4, 2] class MyThread(threading.Thread): def __init__(self, func, args, name=''): threading.Thread.__init__(self) self.name = name self.func = func self.args = args def run(self): print('starting', self.name, 'at:', ctime()) self.res = self.func(*self.args) print(self.name, 'finished at:', ctime()) def getResult(self): return self.res def loop(nloop, nsec): print('start loop', nloop, 'at:', ctime()) sleep(nsec) print('loop', nloop, 'done at:', ctime()) def main(): print('starting at:', ctime()) threads = [] nloops = range(len(loops)) for i in nloops: # 创建线程 t = MyThread(loop, (i, loops[i]), loop.__name__) for i in nloops: threads[i].start() # 启动线程 print(threads[i].res) for i in nloops: threads[i].join() # 等待子线程完成时,主线程执行 print('all DONE at:', ctime()) if __name__ == '__main__': main()
myThread.py