>  기사  >  백엔드 개발  >  PHP는 단일 스레드인가요, 아니면 다중 스레드인가요?

PHP는 단일 스레드인가요, 아니면 다중 스레드인가요?

(*-*)浩
(*-*)浩원래의
2019-09-27 09:30:054613검색

디자인 초기부터 PHP가 대중화될 때까지 이를 해결하기 위해 멀티스레딩을 사용할 필요는 당연히 없었습니다.

PHP는 단일 스레드인가요, 아니면 다중 스레드인가요?

멀티스레딩이 필요한 경우 해당 솔루션과 대안도 있습니다. (추천 학습: 초보부터 숙련까지의 PHP 프로그래밍)

멀티 스레딩이 항상 싱글 스레딩보다 나은 것은 아닙니다(예: two 스레드가 클래스에서 동일한 메소드를 동시에 호출하면 교착 상태가 발생할 수 있습니다.)

고객의 페이지 요청 처리에 해당하는 PHP가 단일 스레드로 처리되므로 코드 안의 비즈니스를 위에서 아래로 편집/이해할 수 있음을 알 수 있습니다. .논리적이지만 PHP는 많은 사용자가 요청한 동일한 PHP를 처리하기 위해 동시에 많은 스레드를 열 수 있으므로 PHP도 "멀티 스레드"로 간주될 수 있습니다.

각 PHP 파일의 실행은 단일 스레드이지만 서버(apache/nigix/php-fpm)는 다중 스레드입니다. 서버에서 특정 PHP 파일에 액세스할 때마다 해당 PHP 파일을 실행하기 위해 새로운 프로세스/스레드가 생성됩니다.

즉, PHP는 하나의 요청에 대해 단일 스레드이지만 여러 요청이 동시에 발생합니다.

사실 일반적으로 PHP 프로그램 작성은 단일 스레드로 간주됩니다. 여러 요청 간의 관계는 때때로 데이터베이스를 읽고 쓰는 것입니다. 파일, 세션 등이 잠기므로 후속 요청이 일시 중지되고 계속하기 전에 이전 요청이 실행될 때까지 기다립니다.

코루틴은 새로운 프로그램 실행 프로세스라고 할 수 있을 뿐이고(기존은 시퀀스, 판단, 루프) 그 본질도 단일하다 -threaded#🎜 🎜#

정확하게 말하면 php는 싱글스레드이고, 어느 정도는 "멀티스레드"라고도 볼 수 있습니다! ! !

위 내용은 PHP는 단일 스레드인가요, 아니면 다중 스레드인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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