调度嵌入式 Python 进程
scheduling embedded python processes
我一直在尝试创建一个嵌入多个python线程的C++程序。由于程序的性质,多任务处理的优势来自异步I/O;但是由于一些变量需要在上下文切换之间更改,我需要控制调度。 我认为由于 python 的 GIL 锁,这将很简单,但事实证明并非如此:python 想要使用 POSIX 线程而不是软件线程,我无法从文档中弄清楚如果我存储PyEval_SaveThread()
的结果并且不在同一函数中调用PyEval_RestoreThread()
会发生什么——所以大概我不应该这样做, 等。
是否可以为嵌入式 python 线程创建自定义调度程序,或者 python 基本上设计为无法完成?
事实证明,使用 PyEval_SaveThread()
和 PyEval_RestoreThread()
是不必要的,基本上我使用协程来运行脚本并控制调度。 在这种情况下,来自libPCL。 然而,这并不是一个真正的解决方案,因为如果 python 遇到语法错误,如果它在协程中,它会出现段错误,奇怪的是,即使只有一个 python 脚本在一个协程中运行,这仍然会发生。但至少它们似乎不会相互冲突。
相关文章:
- 是否可以通过C++扩展强制多个python进程共享同一内存
- IPC使用多个管道和分支进程来运行Python程序
- 如何制作启动 Python 脚本的 linux 后台进程(在 c 中)
- 两个并发的 Python 进程可以在 Boost Python 中运行吗?
- 与 Python 中子进程中的另一个应用程序的交互式会话
- 使用 ctrl + C 在 python 中杀死C++进程
- 如何在 Python 进程中访问由C++进程创建的互斥锁
- C++ Qt获取子python进程的返回值
- Python 子进程.Popen 在 g++ 中编译,自动添加.cpp文件
- Python和C++之间使用本地文件套接字的进程间通信
- 将 Python 标准 IO 公开给子进程
- 调度嵌入式 Python 进程
- 通过我的Python脚本中的子进程从c++中捕获cout
- 从 Python 子进程中的 stdin 读取挂起在 C++/Python IPC 中
- Python 子进程异常处理
- Python将输入重定向到子进程
- Python子进程将数据定向到标准输入
- Python逐行从子进程捕获标准输出
- 从Python子进程终止时的c++调用函数
- 无法在具有无限循环的 boost.python 模块中通过 Ctrl-c 杀死进程