在给定两个std::线程A和B的情况下,有没有办法让A可以挂起B,而不需要在B中为此目的编写任何自定义代码?
原理:目前,B是一个非常复杂的算法,当A(一个监控线程)告诉它时,它应该干净地退出,通过不时地检查一些共享标志。问题是,为了调试的目的,我想确切地知道A请求这种退出的时刻是哪个状态B(例如,为了查看我们忘记检查共享标志的位置),所以我想从A暂停B(用于调试)。
提前感谢!兄弟会
发布于 2011-12-09 17:00:30
这取决于系统。Windows有一个函数SuspendThread,但我承认我对它了解不多。在Unix下,您应该能够使用pthread_kill向线程发送信号(尽管名称不同,但它不会杀死线程,而只是发送信号),并在目标线程中捕获它,在目标线程中,信号处理程序可以调用sleep。
https://stackoverflow.com/questions/8442969
复制相似问题