python线程/进程真象(假的吗?)

文章探讨了Python中线程和进程的实现,通过实验验证Python确实使用了真实的系统线程和进程。在Linux环境下,多进程能显著提高执行效率,而多线程由于GIL限制,效果不明显。结论建议在Linux下利用多进程实现并发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近因为工作需求,需要用下python,作为项目需求,多线程和多进程首先要考虑进去。在网上trace相关的一些资料,总是发现一些人在说:python下面是假线程。不觉得有点惊奇,据我所知,连java里面的线程对象(blue thread 虚拟机蓝色线程)也是跟系统有很大关系,多半内部包含了一个真实的系统线程对象,而python据官方说,并不是如同go一样是基于routine的,非真实线程 这种说法估计有误。。

于是乎,做试验:

代码段:

注明:该代码片断的外围还有4个线程执行该部分代码,故此工作线程远大于10个

直接spy 进程:

看见了吗,里面这么多工作线程。。。

linux系统,简单的把手上一个项目在linux上的trace结果发下:

看上图最上出现4个 worker2,简单点说就是一个 worker2主进程,并有3个其子进程(线程),上图最下

显示4个主进程,所以只有一个worker2。 综上,python里面的线程执行体就是真实的系统执行体

今天进一步研究下 python多线程/多进程机制 效率,不再阐述原理,一切‘坑’都产生于GIL机制, 直接上研究代码了:

impor

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值