鱼C论坛

 找回密码
 立即注册
查看: 1023|回复: 3

Python的多线程,加上了锁不就和单线程没什么区别了?

[复制链接]
发表于 2018-2-1 19:20:08 | 显示全部楼层 |阅读模式

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

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

x
类似下面的一个程序,我只是直接写个例子,可能会有语法错误。


类似这个例子,如果不要里面的锁那就会错乱,如果要这个锁,那么每个线程就要在等一个一个锁在执行完才行。这个不就和单线程一样了么?  大神求解!!!
例子:
  1. import threading
  2. a=0
  3. lock=threading.Lock()
  4. def test():
  5.         lock.acquire()
  6.         a+=1
  7.         print a
  8.         lock.release()

  9. th = []
  10. for i in xrange(100):
  11.         t = threading.Thread(target=test)
  12.         th.append(t)
  13. for i in xrange(100):
  14.         th[i].start()
  15. for i in xrange(100):
  16.         th[i].join()

  17. print a
复制代码


       
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-2-1 19:21:31 | 显示全部楼层
咦,为什么发了新帖不会上论坛首页的新帖。。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-1 19:22:08 | 显示全部楼层
是地,多线程本是鸡肋。用多进程吧。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-1 19:45:44 | 显示全部楼层
最近正好在学习多线程,就你当前的代码,确实是如你所说的这样,
但其实企业的多线程不是你这么用的,
就简单的说爬网页,你正常爬不是从第一页,一页一页往后爬么,  
多线程里 你可以设置一个线程爬10页   你爬前10页  我爬11~20页,他爬21~30页,
每个线程爬下来的数据保存到各自的文件中,  最后再合并文件,这样  相同的时间内,不是做了更多的事么

我也不知道这么解释对不对.....一样请大佬点拨...
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-27 16:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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