python并发编程实践,python 并发编程

dfnjsfkhak 18 0

大家好,今天小编关注到一个比较意思的话题,就是关于python并发编程实践问题,于是小编就整理了2个相关Python并发编程实践的解答,让我们一起看看吧。

  1. 在C++中多线程调用python函数,有什么办法?
  2. python异步协程跟多进程、多线程哪个效率高?

C++中多线程调用python函数,有什么办法?

的确有多线程调用的冲突问题。

通常是初始化一个python解释器。作为全局变量然后每个线程分别调用。因为python解释器里有一个GIL的全局锁。所以要防止线程间因为GIL造成的死锁。不过具体的使用方法,与单线程没有区别。初始化python解释器。然后加载脚本运行,取得返回变量就可以了。如果你使用system,就当我没有说。即使是使用system,也会有多线程的冲突可能性。因为操作系统的管道管理,相关文件,相关数据库,临时文件等都可能会产生冲突。

python异步协程跟多进程、多线程哪个效率高?

Python多线程就别想高效了,因为有一个GIL大锁在,执行不能并发。

python并发编程实践,python 并发编程-第1张图片-芜湖力博教育咨询公司
图片来源网络,侵删)

排除了一个,剩下异步对比多进程。哪个效率高,主要取决于是不是计算密集的任务,以及进程间通信有多频繁。

还要记得,单一进程的异步,满负荷也只有一个核在工作,而多进程是有可能利用多核的能力的。

最后,多进程和异步是可以混合用的,这样的结构跟Go就有点类似了,很可能是效率最佳的组合。

python并发编程实践,python 并发编程-第2张图片-芜湖力博教育咨询公司
(图片来源网络,侵删)

到此,以上就是小编对于python并发编程实践的问题就介绍到这了,希望介绍关于python并发编程实践的2点解答对大家有用

python并发编程实践,python 并发编程-第3张图片-芜湖力博教育咨询公司
(图片来源网络,侵删)

标签: 多进 python 线程