std*_*all 1 c c++ linux pthreads file-descriptor
我有一个线程从文件描述符中读取数据,使用select()阻塞直到数据可用.当程序需要终止时,我需要关闭该线程,但是它在select时被阻止.
我的问题是,通过关闭文件描述符来通知线程关于我终止意图是一个好习惯吗?
有没有更好的方法来通知线程?我知道总有一个选项可以使用信号,但是我已经在某些地方看到了这些信号pthreads并不能很好地协同工作.
那么您可以使用管道,并将其添加到您的读取集.当线程终止时,在管道上发送一个字节.
或者在select通话时超时,超时时检查终止标志.