最近我开始将 ucos-ii 移植到 Ubuntu PC 上。
我们知道,在pthread的回调函数中的“while”循环中简单地添加一个标志来执行暂停和恢复是不可能模拟ucos-ii中的“进程”的(如下解决方案)。因为ucos-ii中的“进程”可以随时暂停或恢复!
如何在 Linux 上用 c 睡眠或暂停 PThread https://stackoverflow.com/questions/1606400/how-to-sleep-or-pause-a-pthread-in-c-on-linux
我在下面的网站上找到了一种解决方案,但无法构建,因为它已经过时了。它使用Linux中的进程来模拟ucos-ii中的任务(就像我们Linux中的进程一样)。
http://www2.hs-esslingen.de/~zimmerma/software/index_uk.html http://www2.hs-esslingen.de/~zimmerma/software/index_uk.html
如果pthread可以像进程一样可以随时暂停和恢复,请告诉我一些相关的功能,我可以自己弄清楚。如果不能,我想我应该专注于旧的解决方案。多谢。
Modula-3 垃圾收集器需要在任意时间暂停 pthread,而不仅仅是在它们等待条件变量或互斥锁时。它通过注册一个挂起线程的 (Unix) 信号处理程序,然后使用 pthread_kill 向目标线程发送信号来实现这一点。我认为它有效(它对其他人来说是可靠的,但我现在正在调试它的问题......)不过,它有点混乱......
Google 搜索 ThreadPThread.m3 并查看例程“StopWorld”和“StartWorld”。 Handler本身位于ThreadPThreadC.c中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)