调度嵌入式python进程

Posted

技术标签:

【中文标题】调度嵌入式python进程【英文标题】:scheduling embedded python processes 【发布时间】:2014-02-27 22:31:53 【问题描述】:

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

是否可以为嵌入式python线程创建自定义调度程序,或者python基本上是设计成无法做到的?

【问题讨论】:

【参考方案1】:

原来使用PyEval_SaveThread()PyEval_RestoreThread()是没有必要的,基本上我是用协程来运行脚本和控制调度的。在这种情况下来自libPCL。然而,这并不是一个真正的解决方案,因为如果 python 遇到语法错误,如果它在协程中,它将出现段错误,奇怪的是,即使只有一个 python 脚本在一个协程中运行,这仍然会发生。但至少它们之间似乎没有冲突。

【讨论】:

以上是关于调度嵌入式python进程的主要内容,如果未能解决你的问题,请参考以下文章

校园招聘攻略----嵌入式软件工程师基础问题

具有嵌入式 Linux 的单核低延迟进程

嵌入式Linux从入门到精通之第十二节:线程

linux内核---嵌入式linux内核的五个子系统

操作系统,马原,嵌入式(考试秘密)

嵌入式Linux从入门到精通之第十节:系统编程之进程