调用pthread_cond_timedwait是否有任何缺点,而不首先锁定相关的互斥锁,并且在调用pthread_cond_signal时也不会使用互斥锁?
在我的情况下,确实没有条件要检查,我想要一个非常类似于Java wait(long)和notify()的行为.
根据文档,可能存在"不可预测的调度行为".我不确定这意味着什么.
一个示例程序似乎工作正常,而不首先锁定互斥锁.
最近我开始将 ucos-ii 移植到 Ubuntu PC。
我们知道,在 pthread 的回调函数中,通过简单地在“while”循环中添加一个标志来执行暂停和恢复(如下面的解决方案)是不可能模拟 ucos-ii 中的“进程”的。因为ucos-ii中的“进程”可以随时暂停或恢复!
我在下面的网站上找到了一种解决方案,但无法构建,因为它已过时。它使用Linux中的进程来模拟ucos-ii中的任务(就像我们Linux中的进程)。
http://www2.hs-esslingen.de/~zimmerma/software/index_uk.html
如果pthread可以像进程那样随时暂停和恢复,请告诉我一些相关的功能,我自己能弄明白。如果不能,我想我应该专注于较旧的解决方案。非常感谢。
我正在研究一个多线程项目,我需要在代码中的某个位置复制一个线程的堆栈(我需要一个指向它的指针).因为在退出这个线程后我将需要该指针(并且它的堆栈被释放).如果我能以某种方式告诉pthread_exit()不要释放线程堆栈,它也可以完成这项工作!
PS:这背后的原因是我希望setcontext(ucontext_t*)稍后在这个线程实际死亡时使用.