关于python的thread的一些理解有关问题
关于python的thread的一些理解问题本帖最后由 ygqwan 于 2013-08-04 22:52:38 编辑#codinggbk import thr
关于python的thread的一些理解问题
本帖最后由 ygqwan 于 2013-08-04 22:52:38 编辑
#coding=gbk
import thread, time, random
count = 0
def threadTest():
global count
for i in xrange(10000):
count += 1
for i in range(10):
thread.start_new_thread(threadTest, ()) #如果对start_new_thread函数不是很了解,不要着急,马上就会讲解
time.sleep(3)
print count #count是多少呢?是10000 * 10 吗?
这个多线程颠覆了我的视野,我想问一下这个执行过程是怎么回事
1.time.sleep(3)是干什么的
2.结果是为什么 Python 线程 多线程
[解决办法]使用thread模块的缺点之一就是你进程什么时候结束完全没有控制,当主线程退出时,所有的子线程会被强制结束.
1. time.sleep()就是使用来等待子线程结束后再往下执行.
2. 由于所有的子线程访问同一片数据count,可能会造成不同步,因此最后的结果count应该是不确定的. 请参考 http://www.cnblogs.com/huxi/archive/2010/06/26/1765808.html
建议使用threading模块吧,它是更高级别的模块
[解决办法]http://tieba.baidu.com/p/1072881148