【发布时间】:2016-04-04 10:29:11
【问题描述】:
我正在寻找在 C++ 中唤醒选择调用的解决方案,根据应用程序要求,由于使用选择系统调用的多线程,我无法设置超时。
请看下面的场景。
我想唤醒在其他线程上等待的选择系统调用。我试图从主线程向线程写入数据,但仍然无法唤醒它。
如果该线程上有空数据,我想关闭线程和套接字。
如果套接字连接从其他进程关闭,但不使用线程,则唤醒选择调用。
有人知道吗
【问题讨论】:
-
TCP中没有空数据这种东西。 UDP 中有空数据报,但您所说的似乎不太可能。不清楚你在问什么。
-
你可以使用自我管道技巧stackoverflow.com/a/384397/2807083
-
你也可以用
signal(3)打断它。 -
@EJP 我正在开发实时应用程序,每当有新线程时,它都会保留内核资源,我想在应用程序的销毁过程正在进行时关闭所有线程,以便它会释放所有资源。
-
您所要做的就是关闭套接字。我在您的问题中没有看到“实时”。
标签: c++ linux multithreading sockets rtos