Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 监视线程的状态_C++_Multithreading - Fatal编程技术网

C++ 监视线程的状态

C++ 监视线程的状态,c++,multithreading,C++,Multithreading,下面是一段代码 if(ESRCH == pthread_kill(Thread_Id,0)) start_Thread_Again 检查线程是否意外退出的好方法?我们可以用类似的方法吗 wait(-1,W_NOHANG) “意外退出?”线程不会意外退出,它退出是因为您的代码告诉它这样做[意味着如果您不希望它退出,您就有一个bug] 从pthread_kill的手册页中:“与kill()一样,如果sig为零,则应执行错误检查,但实际上不应发送任何信号。” 您的

下面是一段代码

  if(ESRCH == pthread_kill(Thread_Id,0))
            start_Thread_Again
检查线程是否意外退出的好方法?我们可以用类似的方法吗

   wait(-1,W_NOHANG)
“意外退出?”线程不会意外退出,它退出是因为您的代码告诉它这样做[意味着如果您不希望它退出,您就有一个bug]

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

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

线程不会意外退出,它退出是因为您的代码告诉它这样做[如果您不希望它退出,则意味着您有一个错误]

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


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

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

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


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

很难确定,因为您的问题中几乎没有上下文。但这表明一个人以一种完全错误的方式思考线程

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


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

线程是分离的还是可连接的?那么代码是非法的。如果线程已终止,则其线程ID不再有效。所以,不,这不是一个好办法。它将在线程ID为指针的平台上崩溃。;)线程是分离的还是可连接的?那么代码是非法的。如果线程已终止,则其线程ID不再有效。所以,不,这不是一个好办法。它将在线程ID为指针的平台上崩溃。;)