鱼C论坛

 找回密码
 立即注册
查看: 3530|回复: 0

关于thread里头的锁没弄明白下面这程序是怎么回事

[复制链接]
发表于 2013-12-21 17:58:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  • #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 吗?  
那人这么解释的:现在我们回过头来看文章开始处给出的那段代码:代码中定义了一个函数 threadTest ,它将全局变量逐一的增加 10000 ,然后在主线程中开启了 10 个子线程来调用 threadTest 函数。但结果并不是预料中的 10000 * 10 ,原因主要是对 count 的并发操作引来的。全局变量 count 是共享资源,对它的操作应该串行的进行。下面对那段代码进行修改,在对 count 操作的时候,进行加琐处理
没明白啥意思,谁帮忙解释下

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-29 08:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表