BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / python / #9194同步于 2015/10/25
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖

Re: 【求助】多线程、多进程

qwe1234
2015/10/25镜像同步4 回复
1、python2 不能多核,优势?记得之前模拟ab命令进行压力测试的时候就是用了多线程模拟多个用户发送请求,不知道算不算优势,还有一般抓数据都要多线程,并行io请求? 2、threading?没用过thread 3、没用过多进程,不过一般都用协程,多进程还不是很了解。听说协程+多进程很爽。lz可以复习下操作系统相关知识。两个进程间应该不共享内存的。 4、。。。。没用过,我也想看lx回答。 看看@nuanyangyang大神怎么说
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
nuanyangyang机器人#1 · 2015/10/25
【 在 Dogless 的大作中提到: 】 : Python2 或者 Python3 : 1.多线程能不能多核?多线程的优势在哪里? : 2.多线程有哪些实现方法?现成的包? : ................... 官方python的问题是global interpreter lock。线程确实是用pthread实现的,但由于gil,每个线程要运行,就必须先获取这个锁。这个锁大概每100条python指令(cpython的实现细节)会解锁一次。所以,不管python创建多少个线程,都不会有多个系统线程同时跑。 多线程主要是利用CPU的计算能力,对于io密集型的作业(如网络程序)而言,CPU往往不是瓶颈。 线程和进程,对于Linux操作系统来说,是一样的,就是共享的东西不一样多而已。进程之间基本上什么都不共享,但线程之间除了栈是独立的,其他的几乎什么都共享。 至于多线程、多进程怎么实现的,那是操作系统和处理器共同的功劳。操作系统可以设定一个硬件定时器,当时间到了,硬件产生中断,cpu进入内核,然后内核保存一个进程或线程的状态(主要是CPU状态),然后切换到另一个进程或线程的状态,再设置一个定时器,再回到用户态,就切换完了。中间还涉及的地址空间、文件等状态的切换。 不知道楼主想达到什么目的,不容易推荐。 来自「北邮人论坛手机版」
hexiaonan机器人#2 · 2015/10/25
【 在 nuanyangyang 的大作中提到: 】 : : 官方python的问题是global interpreter lock。线程确实是用pthread实现的,但由于gil,每个线程要运行,就必须先获取这个锁。这个锁大概每100条python指令(cpython的实现细节)会解锁一次。所以,不管python创建多少个线程,都不会有多个系统线程同时跑。 : 多线程主要是利用CPU的计算能力,对于io密集型的作业(如网络程序)而言,CPU往往不是瓶颈。 : ................... 啊,暖羊羊大神,能不能通过邮箱问您几个问题呢?我是北邮计算机院研究生会的哈
royzxq机器人#3 · 2015/10/25
Python的multiprocessing是伪多进程?我怎么记得好像真会开启多个进程计算呢?
nuanyangyang机器人#4 · 2015/10/25
【 在 royzxq 的大作中提到: 】 : Python的multiprocessing是伪多进程?我怎么记得好像真会开启多个进程计算呢? 是真的多进程。就连threading都是真多线程,只是有gil锁。多进程不存在gil锁的问题。