def main(): print '开始主线程:', ctime() threads = [] # 一个用于储存线程对象的列表 n_loops = range(len(loops)) for i in n_loops: t = threading.Thread(target=loop, args=(i, loops[i])) # 每次循环创建一个Thread的实例 threads.append(t) # 将新创建的对象放到一个列表中
for i in n_loops: threads[i].start() # 每次循环运行一个线程
or i in n_loops: threads[i].join() # 等待子线程的完成
print '主线程完成:', ctime()
if __name__ == '__main__': main()
输出结果为:
1 2 3 4 5 6 7 8
开始主线程: Sat Jun 18 19:47:40 2016 开始线程 开始线程0 于 Sat Jun 18 19:47:40 20161 于 Sat Jun 18 19:47:40 2016 loop函数 1 完成于 Sat Jun 18 19:47:42 2016 loop函数 0 完成于 Sat Jun 18 19:47:44 2016 主线程完成: Sat Jun 18 19:47:44 2016
def main(): print '开始主线程:', ctime() threads = [] # 一个用于储存线程对象的列表 n_loops = range(len(loops)) for i in n_loops: t = MyThread(func=loop, args=(i, loops[i])) # 使用我们自己的类来新建对象 threads.append(t) # 将新创建的对象放到一个列表中 for i in n_loops: threads[i].start() # 每次循环运行一个线程
def main(): print '开始主线程:', ctime() threads = [] # 一个用于储存线程对象的列表 n_loops = range(len(loops)) for i in n_loops: t = MyThread(func=loop, args=(i, loops[i])) # 使用我们自己的类来新建对象 threads.append(t) # 将新创建的对象放到一个列表中 for i in n_loops: threads[i].start() # 每次循环运行一个线程
for i in n_loops: threads[i].join() # 等待子线程的完成
for i in n_loops: print '执行结果为:', threads[i].result # 打印该对象的属性
print '主线程完成:', ctime()
if __name__ == '__main__': main()
执行结果为:
1 2 3 4 5 6
开始主线程: Sat Jun 18 20:11:51 2016 执行结果为: 4 执行结果为: 3 主线程完成: Sat Jun 18 20:11:51 2016
end time start:2016-06-19 18:08:12 time done:2016-06-19 18:08:12 100 time start:2016-06-19 18:08:12 time done:2016-06-19 18:08:12 101 time start:2016-06-19 18:08:12 time done:2016-06-19 18:08:12 102 time start:2016-06-19 18:08:14 time done:2016-06-19 18:08:14 103
if __name__ == '__main__': pool = multiprocess.Pool(2) result = []
for i in range(3): msg = 'hello %s' % i result.append(pool.apply_async(func=func, args=(msg,)))
pool.close() pool.join()
for res in result: print '***: %s' % res.get()
print 'end'
执行看一下返回结果是啥
1 2 3 4 5 6 7 8 9 10
time start:2016-06-19 18:43:22 time start:2016-06-19 18:43:22 time end:2016-06-19 18:43:24 time start:2016-06-19 18:43:24 time end:2016-06-19 18:43:24 time end:2016-06-19 18:43:26 ***: done hello 0 ***: done hello 1 ***: done hello 2 end