PHP에서 멀티스레딩을 구현하는 것은 항상 개발자의 관심사였습니다. 인터넷 애플리케이션이 지속적으로 발전함에 따라 동시에 많은 수의 요청을 처리해야 하는 필요성이 점점 더 시급해지고 있습니다. 이 기사에서는 PHP에서 멀티스레딩을 구현하는 방법을 소개하고, 멀티스레딩의 장점과 적용 가능한 시나리오를 살펴보고, 개발자가 복잡한 동시성 요구 사항에 더 잘 대처할 수 있도록 돕습니다. PHP의 멀티스레딩 적용에 대해 자세히 살펴보겠습니다!
Parallel
확장을 사용하여 php
Parallel
병렬 동시성 확장을 사용하면 PHP에서 멀티스레딩을 구현할 수 있습니다.
이 확장은 객체를 생성하여 스레드를 생성하는 Thread parallelRuntime
。我们可以从 parallelRuntime()
클래스에 대한 설명을 제공합니다.
이 클래스는 메소드 run()
,它安排任务并行运行。我们可以将 Closure
作为参数传递给 run
메소드를 제공합니다.
이 매개변수는 일반적으로 task
라고 불리며, 메소드의 두 번째 매개변수로 array를 지정할 수도 있습니다. 배열의 내용이 작업에 전달됩니다.
Parallel
병렬 동시성 확장을 다운로드하기 전에 몇 가지 요구 사항이 있습니다. PHP 버전은 8.0이어야 하며 Zend Thread Safe(ZTS)가 활성화되어 있어야 합니다.
<pthread.h>
标头是另一个要求。我们可以从 pecl
아래와 같이 확장 프로그램을 다운로드하세요.
for
루프를 사용하여 프로그램의 병렬 실행을 테스트 할 수 있습니다.
예를 들어, run()
메서드 내부에서 루프를 실행하고 메서드 외부에서 또 다른 루프를 실행할 수 있습니다. 이 경우 코드 실행은 병렬로 수행됩니다.
예를 들어 parallelRuntime
클래스의 $rt
개체를 만든 다음 해당 개체를 사용하여 parallelRuntime
类的对象 $rt
,然后使用该对象调用 run()
方法。在 run()
메서드를 호출합니다.
for
循环以在函数内打印 +
符号 50 次。接下来,在 run()
方法之外,编写另一个 for
循环来打印 -
먼저, 함수 내에서 +
기호를 50번 인쇄하는
메서드 외부에 -
기호를 50번 인쇄하는 또 다른 run()
方法内的循环在单独的线程中运行,run()
方法外的循环将同时执行。结果,-
和 +
루프를 작성합니다.
메서드 내부의 루프는 별도의 스레드에서 실행되므로
메서드 외부의 루프도 동시에 실행됩니다. 결과적으로 아래 출력 섹션에 표시된 것처럼 -
및 +
기호가 동시에 인쇄됩니다.
따라서 병렬 동시성 확장을 사용하여 PHP에서 멀티스레딩을 구현할 수 있습니다.
popen()
출력:
popen()
에서 멀티스레딩 구현
함수를 사용하여 PHP에서 병렬 프로세스를 열 수 있습니다. popen()
popen()
函数并创建多个进程来实现多线程。popen()
函数将 command
作为第一个参数,将 mode
이런 방식으로 PHP에서 멀티스레딩을 구현할 수 있습니다.
r
或 w
이 함수는 command
를 첫 번째 매개변수로, mode
를 두 번째 매개변수로 사용합니다. for
循环。在循环内部,创建另一个循环五次的 for
일 수 있습니다. $process
来存储 popen()
函数。将 PHP 文件 message.php
和 r
루프를 만듭니다. 루프 내부에서 5번 반복되는 또 다른 pclose()
函数关闭 $process
루프를 만듭니다.
하위 루프 내에서 $process
배열을 만들어 pclose()
함수를 저장합니다. PHP 파일 message.php
와 r
모드를 첫 번째와 두 번째 매개변수로 설정합니다.
다음으로, 또 다른 하위 루프를 만들고 popen()
를 사용하세요.
여기서는 첫 번째 하위 루프에서 5개의 프로세스가 병렬로 실행됩니다. 프로세스는
함수를 사용하여 두 번째 하위 루프에서 종료됩니다. 🎜 🎜 이것이 PHP의 🎜 함수를 사용하여 멀티스레딩을 구현하는 방법입니다. 🎜 🎜 샘플 코드: 🎜 으아악위 내용은 PHP에서 멀티스레딩 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!