pythoncapi在主线程中运行所有Python线程(或伪造)

2024-05-15 13:50:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在向应用程序添加python脚本支持

这个应用程序有一个不是线程安全的API,我不能改变这一点

我的一个要求是能够运行多个独立的脚本,因此我必须在不同的线程中运行子解释器

尽管由于CPython中的GIL,没有超过一个线程同时运行,但是任何持有GIL的线程仍然会与主线程同时运行,这将由于应用程序的线程不安全API而导致问题

总而言之:我正在寻找一种在主线程中运行所有python代码的方法。

这个问题怎么解决

主线程是否应该始终持有GIL,并拥有一个函数,以一种协作的多任务方式,在几毫秒后释放并重新获取GIL,从而允许解释器做一些工作?这看起来不对:当python没有工作要做时,这样的函数也将消耗x毫秒


Tags: 方法函数代码脚本api应用程序方式cpython