鱼C论坛

 找回密码
 立即注册
查看: 1531|回复: 4

关于python多线程问题

[复制链接]
发表于 2018-1-29 16:48:00 | 显示全部楼层 |阅读模式

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

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

x
我想问的是使用多线程给一个字典添加元素的时候,字典需不需要锁?

我的多线程是这样的,首先有一个全局字典DICT
然后,使用多线程去执行一个函数,这个函数做的事情就是将一个元素添加到这个全局字典中
最后,返回这个字典,
我目前发现可以不用加锁,好像是没有问题的

其实我对python的线程是真的没怎么用,了解一个大概,如果是文件写入的话,是必须用锁的,这个我知道也用过,所以我的这个问题就是,如果是一个全局的字典,是否需要加锁?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-1-29 16:52:47 | 显示全部楼层
本帖最后由 sky 于 2018-1-29 16:59 编辑

我没用过 不过 感觉应该是需要一个锁的 避免哈希冲突
如果同时加入超量的键值 就有可能出问题

我还没到需要多线程的级别
看pycon大会的视频 核心开发者Raymond Hettinger推荐用协程 生成器
都不推荐用多线程多进程 因为这个天生有bug 不是超级程序员工程师 最好不用 除非特别简单的事情

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

使用道具 举报

 楼主| 发表于 2018-1-29 16:57:38 | 显示全部楼层
sky 发表于 2018-1-29 16:52
我没用过 不过 感觉应该是需要一个锁的 避免哈希冲突
如果同时加入超量的键值 就有可能出问题

兄弟,我线程都没搞清楚,更别说什么协程了,我没怎么看
这次是因为要写一个简答的爬虫,用来检测所有链接请求后能否在页面中找到指定的信息,发现单线程的话,速度有点慢,多线程就很快了,暂时没有加锁,也没有发现问题,不知道会不会有问题
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-29 17:00:42 | 显示全部楼层
本帖最后由 sky 于 2018-1-29 17:04 编辑
gopythoner 发表于 2018-1-29 16:57
兄弟,我线程都没搞清楚,更别说什么协程了,我没怎么看
这次是因为要写一个简答的爬虫,用来检测所有链 ...


爬虫啊 用scrapy
我弄过的爬虫不多 但我遇到的都没用过多线程 因为太麻烦了 什么都得管 我用python就是因为懒啊

所以推荐scrapy 或者 多进程+requests 线程python真的 反正我是不打算学
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-29 17:05:18 | 显示全部楼层
sky 发表于 2018-1-29 17:00
爬虫啊 用scrapy

一个小的检测功能而已,用scrapy有点大材小用了,多线程正好
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-27 13:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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