gpt4 book ai didi

c++ - 如何随时暂停 pthread?

转载 作者:IT王子 更新时间:2023-10-29 01:10:36 26 4
gpt4 key购买 nike

最近我着手将 ucos-ii 移植到 Ubuntu PC。

我们知道,仅仅通过在pthread的回调函数中的“while”循环中添加一个标志来执行暂停和恢复(如下面的解决方案),是无法模拟ucos-ii中的“进程”的。因为ucos-ii中的“进程”可以随时暂停或恢复!

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

如果pthread可以像一个可以随时暂停和恢复的进程一样,请告诉我一些相关的函数,我自己能搞定。如果不能,我想我应该专注于旧的解决方案。非常感谢。

最佳答案

Modula-3 垃圾收集器需要在任意时间挂起 pthread,而不仅仅是在它们等待条件变量或互斥体时。它通过注册一个暂停线程的 (Unix) 信号处理程序然后使用 pthread_kill 向目标线程发送信号来实现。我认为它有效(它对其他人来说是可靠的,但我现在正在用它调试一个问题......)虽然它有点笨拙......

Google 查找 ThreadPThread.m3 并查看例程“StopWorld”和“StartWorld”。 Handler本身在ThreadPThreadC.c中。

关于c++ - 如何随时暂停 pthread?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9397068/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com