【发布时间】:2016-07-27 20:19:42
【问题描述】:
我有一个大约有 100 个线程的线程池。在测试过程中,当我引入一些异常情况时,整个过程变得非常缓慢。一旦我让事情变得正常,这个过程就会再次变得很快。因此,所有线程都在运行。
我想检测哪些线程特别慢。为此,我想编写另一个线程,其职责是密切关注其他线程,并定期报告其中哪些线程正在等待资源被释放。有没有办法(在 Pthread 中)我可以找到哪些线程正在等待某些资源被释放,即哪些线程“挂起”——如果使用正确的话?
系统:C、Pthread、Linux
PS:如果您需要任何其他详细信息,请在 cmets 中提及。
【问题讨论】:
-
可能不会,但您可以自己做 - 在等待之前将标志设置为 true,在等待后将其设置为 false?
-
当您说“资源”时,您是指 pthread 锁/互斥锁还是其他?
-
@JeremyFriesner 是的,当我说“资源”时,我指的是 pthread 互斥体。
标签: c multithreading pthreads freeze