python多线程(等待)主线程和子线程的同步执行
2014-12-30 14:09
393 查看
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import threading
import time
def fun(name, ls_name, front_thread = None):
'''
线程启动函数
通过front_thread来使用线程有序的运行
'''
time.clock()
time.sleep(2)
# 如果front_thread存在,则在front_thread运行完成后,才运行当前线程
if front_thread != None:
front_thread.join()
ls_name.append(name)
print "thread %s : %s"% (name, time.clock())
if __name__ == '__main__':
ls_result_name = []
ls_thread = []
time.clock()
# 逐一启动1000个线程
for i in range(0,10):
if len(ls_thread) == 0:
t = threading.Thread(target=fun, args=(i,ls_result_name,None))
else:
t = threading.Thread(target=fun, args=(i,ls_result_name,ls_thread[-1]))
t.start()
ls_thread.append(t)
# 等待所有线程结束
for t in ls_thread:
t.join()
print 'ls_result_name:', ls_result_name
print "main thread:%s" % time.clock()
# -*- coding: utf-8 -*-
import threading
import time
def fun(name, ls_name, front_thread = None):
'''
线程启动函数
通过front_thread来使用线程有序的运行
'''
time.clock()
time.sleep(2)
# 如果front_thread存在,则在front_thread运行完成后,才运行当前线程
if front_thread != None:
front_thread.join()
ls_name.append(name)
print "thread %s : %s"% (name, time.clock())
if __name__ == '__main__':
ls_result_name = []
ls_thread = []
time.clock()
# 逐一启动1000个线程
for i in range(0,10):
if len(ls_thread) == 0:
t = threading.Thread(target=fun, args=(i,ls_result_name,None))
else:
t = threading.Thread(target=fun, args=(i,ls_result_name,ls_thread[-1]))
t.start()
ls_thread.append(t)
# 等待所有线程结束
for t in ls_thread:
t.join()
print 'ls_result_name:', ls_result_name
print "main thread:%s" % time.clock()
相关文章推荐
- 多线程 不使用同步工具, 手动协调线程依次执行
- Java多线程--让主线程等待所有子线程执行完毕代码
- 【多线程】【同步】【等待唤醒机制】【JDK1.5多线程】【线程优先级&常见方法】
- Java多线程--让主线程等待所有子线程执行完毕
- java 多线程 主线程等待子线程结束
- .NET组件程序设计 第8章 多线程和并发管理 同步线程_可等待事件
- 主线程等待子线程执行完毕后再执行
- Java多线程--让主线程等待所有子线程执行完毕
- java线程池主线程等待子线程执行完成
- python多线程编程: 使用互斥锁同步线程
- 多线程中主线程等待所有子线程执行完再继续执行的解决方法
- 主线程等待子线程执行二
- Java多线程--让主线程等待所有子线程执行完毕
- Java多线程、主线程等待所有子线程执行完毕、共享资源
- 主线程等待子线程结束(多线程结束标识)
- 多线程中主线程等待所有子线程执行完再继续执行的解决方法
- [原] 主线程等待子线程结束(多线程结束标识)
- java线程池主线程等待子线程执行完成后再继续处理后面工作
- 子线程返回前,使循环暂停但不使主线程卡死的办法,等待子线程有返回了之后,才执行主线程下一步代码的方法
- Java多线程--让主线程等待所有子线程执行完毕