>  기사  >  PHP 프레임워크  >  Swoole Worker에는 이벤트 폴링 기능이 있나요?

Swoole Worker에는 이벤트 폴링 기능이 있나요?

(*-*)浩
(*-*)浩원래의
2019-12-16 09:28:082140검색

Swoole Worker에는 이벤트 폴링 기능이 있나요?

Swoole은 치명적인 PHP 오류, 실수로 다른 프로그램에 의해 종료되거나 max_request 수에 도달한 후 정상적으로 종료되는 등 작업자 프로세스가 비정상적으로 종료되는 경우 완전한 프로세스 관리 메커니즘을 제공합니다. (추천 학습: SWOOLE Video Tutorial )

메인 프로세스는 새로운 작업자 프로세스를 다시 얻게 됩니다. 일반 apache+php 또는 php-fpm과 같은 Worker 프로세스에서 코드를 작성할 수 있습니다.

swoole_server 스레드 모드

이것은 다중 스레드 작업자 모드입니다. Reactor 스레드는 네트워크 이벤트 폴링을 처리하고 데이터를 읽습니다. 획득된 요청은 처리를 위해 작업자 스레드로 전달됩니다.

Swoole은 m/n 매개변수 조정을 달성하기 위해 구성 가능한 매개변수를 제공합니다.

이 모드에서는 onReceive가 적당한 차단 작업을 수행할 수 있습니다. 멀티 스레드 모드는 프로세스 모드보다 가볍고 스레드 간에 스택과 리소스를 공유할 수 있습니다.

공유 메모리에 액세스할 때 동기화 문제가 발생하며 Swoole에서 제공하는 잠금 메커니즘을 사용하여 데이터를 보호해야 합니다.

현재 뮤텍스, 읽기-쓰기 잠금, 파일 잠금, 세마포어 및 스핀 잠금의 총 5가지 잠금 구현이 제공되었습니다.

멀티스레딩의 장점:

객체와 변수가 공유되어 직접 작동 가능

파일 설명자가 공유되고, 서로 다른 스레드가 동일한 리소스에서 직접 작동 가능

멀티스레딩의 단점:

로컬이 아닌 변수를 작동할 때 잠금이 필요하므로 프로그래밍이 어렵습니다.

한 스레드에서 메모리 오류가 발생하고 전체 프로세스가 종료됩니다.

PHP의 ZendVM이 멀티 스레드 모드에서 메모리 오류가 발생하기 때문입니다. 멀티스레드 모드는 v1.6.0 버전 이후 종료됨

위 내용은 Swoole Worker에는 이벤트 폴링 기능이 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.