libevent는 이벤트 트리거 네트워크 라이브러리로 Windows, Linux, freebsd 등 다양한 플랫폼에 적합하며 내부적으로 select, poll, epoll, kqueue 등과 같은 시스템 호출을 사용하여 이벤트 메커니즘을 관리합니다. Libevent Extension 설치 방법을 에디터와 함께 배워보겠습니다.
1. libevent 소개
libevent는 이벤트 트리거 네트워크 라이브러리로 Windows, Linux, FreeBSD 등 다양한 플랫폼에 적합하며 내부적으로 select, poll, epoll, 이벤트 메커니즘을 관리하는 kqueue입니다. Libevent는 크로스 플랫폼이며 탁월한 성능을 제공합니다. nodejs처럼 이벤트 중심입니다. 공식 웹사이트: http://libevent.org/
최신 안정 버전
https://github.com/downloads/libevent/libevent/libevent-2.0.16-stable.tar .gz
주요 모듈:
이벤트 처리 프레임워크
이벤트 엔진 모듈
버퍼 관리 모듈
신호 처리 모듈
php 자체는 멀티스레딩을 지원하지 않으며 PHP는 동시성 메커니즘을 제대로 구현할 수 없습니다. Pecl에서 제공하는 pcntl(프로세스 제어), libevent 확장, 소켓 패키지, 스트림 시스템 기능을 사용하면 PHP를 사용하여 고성능, 동시성 높은 네트워크 애플리케이션을 쉽게 개발할 수 있습니다.
간단한 적용 예: Pcntl 포크 n 워커. 마스터 프로세스가 요청을 받은 후 처리 정보는 작업자 프로그램으로 전송되고 작업자는 처리 후 이를 클라이언트로 다시 보냅니다. 마스터 프로세스는 동시성 양에 따라 작업자 수, 즉 n의 크기를 설정하고 작업자의 데이터를 모니터링하며 부족할 때 추가 프로세스를 시작할 수 있습니다. nginx 원리와 동일합니다.
첨부 파일: Php 네트워크 프로그래밍 프레임워크
http://code.google.com/p/swoole/downloads/list
2. libevent를 배우는 이유
http 서버는 libevent의 고전적인 응용 프로그램이라고 할 수 있습니다. http의 표준 작성 방법은 libevent에서 찾을 수 있습니다. 비차단 http 서버는 소켓 처리와 http 프로토콜 처리가 얽혀 있는 것입니다.
libevent를 배우면 프로그래밍 기술을 향상시키는 데 도움이 될 수 있습니다. Libevent의 코드에는 정보 숨기기, 함수 포인터, C 언어의 다형성 지원, 연결된 목록 및 힙 등과 같은 많은 유용한 설계 기술과 기본 데이터 구조가 있습니다. , 자신의 프로그래밍 기술을 향상시키는 데 도움이 될 것입니다 [1].
세 가지 유형의 요청 처리:
연결 입력에서 새 프로세스를 분기합니다
연결 입력 pthread_create
연결 입력에서 이벤트 기반 배열을 발생시킵니다.
3. Php libevent 확장 모듈 설치
Curl –O https://github.com/downloads/libevent/libevent/libevent-2.0.16-stable.tar.gz
Tar –zxvf libevent-2.0.16-stable.tar.gz Cd libevent-2.0.16-stable /usr/local/php/bin/phpize ./configure make make install vi /usr/local/php/etc/php.ini extension_dir=””; extension=libevent.so php –m | grep lib
성공적으로 설치되었습니다
추천 학습:php 비디오 튜토리얼
위 내용은 PHP용 Libevent 확장을 설치하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!