监视线程的状态

monitor the status of a thread

本文关键字:状态 线程 监视      更新时间:2023-10-16

下面的代码是吗

  if(ESRCH == pthread_kill(Thread_Id,0))
            start_Thread_Again

检查线程是否意外退出的好方法?我们能像一样使用它吗

   wait(-1,W_NOHANG)

"意外退出?"线程不会意外退出,它退出是因为你的代码告诉它这样做[意味着如果你不想让它退出,你就有一个bug]。

根据pthread_kill的手册页:"与kill()中一样,如果sig为零,则应进行错误检查,但实际不应发送任何信号。"

您的代码是错误的,必须检查是否相等。

很难确定,因为你的问题中几乎没有上下文。但这表明一个人对线程的思考方式完全不正确。

一段典型的应用程序代码没有理由关心另一个线程具体在做什么。您可能关心正在完成的某些工作的状态,但这种关心在逻辑上应该独立于当时可能正在或可能不在做该工作的线程。

如果你的问题是某项工作是否完成,或者某项任务是否正在进行,请查看与该工作或任务相关的结构。这些结构不会与特定的线程相关联,而是与需要完成的事情相关联。