国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

關于usleep在posix_kill的應用原理

neconano

在查詢status命令中,

            // 發(fā)信號SIGUSR2查詢狀態(tài)(主進程通知所有子進程)
            posix_kill($master_pid, SIGUSR2);
            usleep(500000);// 等待0.5秒

為什么要使用usleep,我試了使用pcntl_signal_dispatch(); 不好用,

求教!?。。?/p>

3494 6 0
6個回答

walkor 打賞

1、status腳本給主進程發(fā)送信號
2、主進程會將信號分發(fā)給所有子進程
3、子進程收到信號后將自己進程內的統(tǒng)計數(shù)據(jù)寫到磁盤的一個文件里
4、status腳本讀取這個文件得到所有進程的統(tǒng)計數(shù)據(jù)

因為2 3 信號分發(fā)接受處理些磁盤 步驟需要一點時間,
所以status腳本那里要sleep下等待這些操作完成

  • 暫無評論
neconano

好的,thx

  • 暫無評論
neconano

請問

posix_kill($master_pid, SIGUSR2);

后沒有調用

pcntl_signal_dispatch();

還能生效,是因為

monitorWorkers()吧?

posix_kill 發(fā)送信號必須要調用 pcntl_signal_dispatch 才能執(zhí)行是嗎

  • 暫無評論
walkor 打賞

調用pcntl_signal_dispatch能執(zhí)行
另外利用declare(ticks=1);也可以

  • 暫無評論
neconano

好的,那我的理解處理過程是否有問題

  • 暫無評論
walkor 打賞

monitorWorkers() 里調用了 pcntl_signal_dispatch

  • 暫無評論
年代過于久遠,無法發(fā)表回答
??