首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

python的多线程能否实现并发,这里告诉您.

python的多线程能否实现并发,这里告诉您.很多朋友可能都使用过python,但是并发并行的问题,可能就很少有朋友了解了.

并发:强调的是可以一起出发,并行:强调的是可以一起执行.

我们今天强调的是并行,因为并行是单个cpu可以同时执行多个任务,这才是我们提高执行效率的目标.

由于很多复杂原因Python设计之初并没有锁的操作,所以为了防止多个线程之间的读写冲突,Python 使用 GIL 作为全局锁。换句话说,Python 的解释器,也就是默认的cpython解释器每次只会执行一个线程。这就是python的多线程为何不是并行的原因了.

每个线程要运行前先请求 GIL(全局解释器锁 ),当线程阻塞时(比如 I/O 阻塞),线程释放 GIL,这时,另一个线程会接着运行。因此,Python 的多线程程序在同一时间只有一个线程在运行。多线程 Python 程序只是并发,而不是并行。

如果想实现并行和并发如何解决呢?

请使用多进程

更换解释器,默认的cpython解释器带有GIL,但是jpython没有

调用其他c代码库实现.

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210226A026RW00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券