PHP에서 다중 프로세스 및 다중 태스킹을 구현하는 코드 예

WBOY
풀어 주다: 2016-07-25 08:58:35
원래의
1535명이 탐색했습니다.
  1. /**

  2. *基于PHP5实现
  3. *借助proc_open
  4. *能启动多进程,你可以使用你的想象力做你想做的了
  5. *如果你是在linux上跑php,并且启用pcntl模块后,使用pcntl函数该更好
  6. *最后修改:by bbs.it-home.org 2013/6/20
  7. **/
  8. error_reporting(E_ALL);
  9. set_time_limit(0);

  10. class Thread {

  11. protected $_pref; // process reference
  12. protected static $_instance = null;
  13. protected $_pipes;

  14. private function __construct() {

  15. $this->_pref = 0;
  16. }

  17. public static function getInstance($file) {

  18. if (null == self::$_instance) {
  19. self::$_instance = new self;
  20. }

  21. $descriptor = array(

  22. 0 => array("pipe", "r"),
  23. 1 => array("pipe", "w"),
  24. 2 => array("file", "./error-output.txt", "a"),
  25. );
  26. self::$_instance->_pref = proc_open("php -q $file", $descriptor, self::$_instance->_pipes);
  27. return true;
  28. }

  29. public function __destruct() {

  30. proc_close($this->_pref);
  31. $this->_pref = null;
  32. }
  33. ?>

复制代码


원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!