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