python的多线程能否实现并发,游学电子告诉您

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

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

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

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

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

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

  1. 请使用多进程
  2. 更换解释器,默认的cpython解释器带有GIL,但是jpython没有
  3. 调用其他c代码库实现.

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值