大家好,今天小编关注到一个比较有意思的话题,就是关于python并发编程实践的问题,于是小编就整理了2个相关Python并发编程实践的解答,让我们一起看看吧。
在C++中多线程调用python函数,有什么办法?
的确有多线程调用的冲突问题。
通常是初始化一个python解释器。作为全局变量。然后每个线程分别调用。因为python解释器里有一个GIL的全局锁。所以要防止线程间因为GIL造成的死锁。不过具体的使用方法,与单线程没有区别。初始化python解释器。然后加载脚本,运行,取得返回变量就可以了。如果你使用system,就当我没有说。即使是使用system,也会有多线程的冲突可能性。因为操作系统的管道管理,相关文件,相关数据库,临时文件等都可能会产生冲突。python异步协程跟多进程、多线程哪个效率高?
Python多线程就别想高效了,因为有一个GIL大锁在,执行不能并发。
排除了一个,剩下异步对比多进程。哪个效率高,主要取决于是不是计算密集的任务,以及进程间通信有多频繁。
还要记得,单一进程的异步,满负荷也只有一个核在工作,而多进程是有可能利用多核的能力的。
最后,多进程和异步是可以混合用的,这样的结构跟Go就有点类似了,很可能是效率最佳的组合。
(图片来源网络,侵删)
到此,以上就是小编对于python并发编程实践的问题就介绍到这了,希望介绍关于python并发编程实践的2点解答对大家有用。
(图片来源网络,侵删)
版权声明:本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。