当前位置: 技术问答>linux和unix
linux多线程通讯相关问题.请大家帮忙指点
来源: 互联网 发布时间:2016-03-17
本文导语: 我的目的: 主线程循环启动子线程. 1. 主线程启动子线程. 2. 子线程结束时,通知主线程. 3. 主线程接到通知再次启动子线程. 我当前的实现方法: 使用信号通知.我直接使用了 SIGUSR1 信号.在子线程结...
我的目的:
主线程循环启动子线程.
1. 主线程启动子线程.
2. 子线程结束时,通知主线程.
3. 主线程接到通知再次启动子线程.
我当前的实现方法:
使用信号通知.我直接使用了 SIGUSR1 信号.在子线程结束的时候 raise(SIGUSR1);在信号处理函数中 再次启动子线程.
关键代码:
主线程循环启动子线程.
1. 主线程启动子线程.
2. 子线程结束时,通知主线程.
3. 主线程接到通知再次启动子线程.
我当前的实现方法:
使用信号通知.我直接使用了 SIGUSR1 信号.在子线程结束的时候 raise(SIGUSR1);在信号处理函数中 再次启动子线程.
关键代码:
// 信号设置
int mythread::SetSignalFunc(sig_fn_t func)
{
struct sigaction act;
act.sa_handler = func;
sigemptyset(&act.sa_mask);
act.sa_flags = SA_RESTART;
if (sigaction(SIGUSR1, &act, NULL)