【发布时间】:2015-10-23 06:26:09
【问题描述】:
我正在处理一个多线程项目,我需要在代码中的某个位置复制一个线程的堆栈(我需要一个指向它的指针)。因为在这个线程退出后我将需要那个指针(并且它的堆栈被释放)。
如果我能以某种方式告诉pthread_exit() 不要释放线程堆栈,它也可以完成这项工作!
PS:这背后的原因是我想稍后在这个线程实际上已经死的时候使用setcontext(ucontext_t*)。
【问题讨论】:
-
我认为您遇到了 XY 问题。你想用它来达到什么目的?
-
@FUZxxl:我想隐藏一个等待线程,这样操作系统就不会看到它,(它用于一些调度测试)。我以为我会杀死它,然后当我想唤醒它时,我会恢复它。我的项目非常有必要隐藏线程。
-
如果您的项目确实需要这样做,那么解决此问题的方法是编写您自己的操作系统,或者至少编写线程库。
-
请注意,线程不仅仅包含堆栈——还有线程本地存储和各种其他属性。您不能仅通过保留其堆栈来保留线程。
-
为什么不让线程锁定
pthread_mutex_t?
标签: c linux multithreading stack pthread-exit