2017-01-30 65 views
1

我在我的程序中遇到错误,导致整个过程终止,而我通过我的程序进行调试,并按照Task Manager我可以看到我的进程在运行某个线程时被终止。线程完成的操作会导致其他线程和整个进程终止?

我通过这个线程,显然我用exit()导致了这个问题。我改为pthread_exit()又一次我有同样的问题,原来是这个特定线程也有非法操作:division by zero

  • 了pthread_exit
  • pthread_cancel可以
  • 出口
  • 违法行为
  • 主线程返回

当将那些导致进程终止?

回答

1
|      | thread | process      | 
----------------------------------------------------------------- 
| pthread_exit  | finish | finish iff last running thread | 
| pthread_cancel  | finish | finish iff last running thread | 
| exit()    | finish | finish       | 
| Illegal operation | finish | finish       | 
| thread finishes  | finish | finish iff last running thread | 
| main thread finishes| finish | finish       | 

return是包含exitsys_call的包装功能,这就是为什么整个线程终止为好。

CPUs趋于零,或取消对NULL指针抛出异常中断,之类的东西师 。导致程序的执行停止并将控制权交还给操作系统来处理事件。该程序可能会被终止,所有资源释放取决于操作系统。

相关问题