亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    為什么swoole不能用sleep

    因?yàn)樵趕woole中,使用sleep函數(shù)會(huì)使進(jìn)程陷入睡眠阻塞;sleep過程中只有信號(hào)可以打斷,由于swoole的信號(hào)是基于signalfd實(shí)現(xiàn)的,所以即使發(fā)送信號(hào)也無法中斷sleep,只有到指定的時(shí)間后操作系統(tǒng)才會(huì)重新喚醒當(dāng)前的進(jìn)程。

    為什么swoole不能用sleep

    本教程操作環(huán)境:Windows10系統(tǒng)、Swoole4版、DELL G3電腦

    為什么swoole不能用sleep

    在異步IO的程序中,不得使用sleep/usleep/time_sleep_until/time_nanosleep。(下文中使用sleep泛指所有睡眠函數(shù))

    • sleep函數(shù)會(huì)使進(jìn)程陷入睡眠阻塞

    • 直到指定的時(shí)間后操作系統(tǒng)才會(huì)重新喚醒當(dāng)前的進(jìn)程

    • sleep過程中,只有信號(hào)可以打斷

    • 由于Swoole的信號(hào)處理是基于signalfd實(shí)現(xiàn)的,所以即使發(fā)送信號(hào)也無法中斷sleep

    Swoole提供的swoole_event_add、swoole_timer_tick、swoole_timer_after、swoole_process::signal、異步swoole_client 在進(jìn)程sleep后會(huì)停止工作。swoole_server也無法再處理新的請(qǐng)求。

    實(shí)例程序

    $serv = new swoole_server("127.0.0.1", 9501); $serv->set(['worker_num' => 1]); $serv->on('receive', function ($serv, $fd, $from_id, $data) {     sleep(100);     $serv->send($fd, 'Swoole: '.$data); }); $serv->start();

    onReceive事件中執(zhí)行了sleep函數(shù),server在100秒內(nèi)無法再收到任何客戶端請(qǐng)求。

    推薦學(xué)習(xí): swoole教程

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)