调度嵌入式python进程

2024-04-25 08:34:52 发布

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

<>我一直在尝试创建一个嵌入多个Python线程的C++程序。由于程序的性质,多任务的优势来自异步I/O;但是由于一些变量需要在上下文切换之间进行更改,我需要控制调度。我以为由于python的GIL锁,这就足够简单了,但事实证明并非如此:python希望使用POSIX线程而不是软件线程,如果我存储PyEval_SaveThread()的结果,而不在同一个函数中调用PyEval_RestoreThread(),我无法从文档中弄清楚会发生什么——所以我大概不应该这样做,等等

有没有可能为嵌入的python线程创建一个定制的调度程序,或者python基本上是这样设计的?你知道吗


Tags: 函数文档程序软件调度线程posix多任务
1条回答
网友
1楼 · 发布于 2024-04-25 08:34:52

结果发现使用PyEval_SaveThread()PyEval_RestoreThread()是不必要的,基本上我使用了协同程序来运行脚本和控制调度。在本例中,来自libPCL。然而,这并不是一个很好的解决方案,因为如果python遇到语法错误,如果它在一个协同程序中,它就会出错,奇怪的是,即使只有一个python脚本在一个协同程序中运行,这种情况仍然会发生。但至少他们似乎没有冲突。你知道吗

相关问题 更多 >