关于python的thread的一些理解有关问题

关于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