Swoole에서는 Sleep 기능을 사용하면 프로세스가 Sleep Blocking 상태가 됩니다. Swoole의 신호는 signalfd를 기반으로 구현되므로 신호가 전송될 때까지 Sleep을 중단할 수 없습니다. 지정된 시간에만 운영 체제가 현재 프로세스를 다시 활성화합니다.
이 튜토리얼의 운영 환경: Windows 10 시스템, Swoole 4 버전, DELL G3 컴퓨터
비동기 IO 프로그램에서는 sleep/usleep/time_sleep_until/time_nanosleep이 허용되지 않습니다. (아래에서 슬립은 일반적으로 모든 슬립 기능을 지칭하는 데 사용됩니다.) 슬립 기능은 프로세스를 슬립 차단 상태로 만들 수 있으며, 슬립 프로세스 중에는 지정된 시간까지 현재 프로세스를 다시 깨우지 않습니다. 방해받을 수 있음
Swoole의 신호 처리는 signalfd 기반이므로 신호가 보내져도 sleep을 방해할 수 없습니다
Swoole_event_add, swoole_timer_tick, swoole_timer_after, swoole_process::signal, asynchronous swoole_client가 처리 중입니다. 수면은 나중에 작동을 멈춥니다. swoole_server는 더 이상 새 요청을 처리할 수 없습니다.
$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();
추천 학습:
swoole 튜토리얼위 내용은 Swoole은 왜 수면을 사용할 수 없나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!