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

跪求群主講解一下Workerman是如何調(diào)用libevent擴(kuò)展庫的視頻教程

Tinywan

通過這個帖子:http://m.wtbis.cn/q/8196 主進(jìn)程搞懂了,但是涉及到的子進(jìn)程事件交給了event,想知道里面是怎么實現(xiàn)(主要是workerman如何調(diào)用控制的)

列如定時器Timer類

public static function init($event = null)
{
    // 如果是子進(jìn)程,則賦予事件后直接退出
    if ($event) {
        self::$_event = $event;
        return;
    }
    // 這里是主進(jìn)程(初始化)使用的是`pcntl_alarm`做定時。
    if (\function_exists('pcntl_signal')) {
        \pcntl_signal(\SIGALRM, array('\Workerman\Lib\Timer', 'signalHandle'), false);
    }
}

賦予事件后直接退出是怎么工作的呢

1653 3 2
3個回答

nitron

其實這個就是注冊(init)用,具體處理邏輯是$event內(nèi),因為是子進(jìn)程,所以具體調(diào)度由master process去處理

  • Tinywan 2022-04-06

    沒聽明白

  • nitron 2022-04-06

    這只是個初始化, return掉是因為即使在子進(jìn)程, \function_exists('pcntl_signal')也是有效(true)的, 只是不起作用而已

  • Tinywan 2022-04-06

    想知道這個 self::$_event = $event; 里面的故事

phpcreeper
  1. workerman支持各種網(wǎng)絡(luò)事件庫,比如業(yè)務(wù)代碼層面手動切換Libevent庫:
    Worker::$globalEvent = new \Workerman\Events\Libevent;
  2. workerman子進(jìn)程的Timer實現(xiàn)用的是或者說依賴是各個底層網(wǎng)絡(luò)事件庫【比如:libevent、event、ev、swoole等等這些C或C++庫】內(nèi)置實現(xiàn)的定時器技術(shù),都對應(yīng)有的相應(yīng)的PHP擴(kuò)展API實現(xiàn),所以調(diào)用對應(yīng)API就完事兒了,這個事兒wokerman已經(jīng)幫開發(fā)者早做好啦。
  3. 如果想了解更底層的這些網(wǎng)絡(luò)事件庫對Timer是怎么實現(xiàn)的,那就只好扒C/C++源碼了。
  • Tinywan 2022-04-06

    太下面就是紅黑樹了,有點難

  • walkor 2022-04-06

    對,就是blogdaren說的那樣

liziyu

mark

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