我有一个在循环中运行并以阻塞方式调用accept()的pthread。是否有任何方法可以从另一个线程中断该调用?所有指向发送信号给线程,但显然只能向进程发送信号。
我不能简单地杀死线程,因为那样会让套接字保持打开状态。而且这也不太干净。真的没有办法做到这一点吗?
我不能简单地杀死线程,因为那样会让套接字保持打开状态。而且这也不太干净。真的没有办法做到这一点吗?
pthread_kill(3)
函数来向线程发送信号。
请注意,您不必杀死线程;您可以发送一个信号,使
pthread_kill()
函数将信号sig发送给线程,即与调用者在同一进程中的另一个线程。如果已安装信号处理程序,则处理程序将在线程thread中被调用。
accept
失败并返回EINTR
。select()
,要么向进程发送信号(如果您只想中断其中一个线程,则这将是一个问题)。