2014-06-13 3 views

답변

3

이 코드에 시작 :

http://www.php.net/manual/en/thread.start.php

<?php 
class My extends Thread { 
    public $data = ""; 
    public function run() { 
     /** ... **/ 
    } 
} 
$my = new My(); 
$my->data = "something"; // Pass something to the Thread before you actually start it. 
var_dump($my->start()); 
?> 
+0

PHP 구문 분석 오류 : 예기치 않은 '='on line 9 – Junior

+1

죄송합니다. 오타가 있었기 때문에 회원 액세스에'-> '연산자를 사용해야합니다 :) – Promi

3

당신이 PHP의 다른 개체 [또는 lanugage]와 마찬가지로, 당신은 구성원을 설정하는 생성자에 매개 변수를 전달해야한다.

class My extends Thread { 

    public function __construct($greet) { 
     $this->greet = $greet; 
    } 

    public function run() { 
     printf(
      "Hello %s\n", $this->greet); 
    } 
} 

$my = new My("World"); 
$my->start(); 
$my->join(); 

특별한 조치가 여러 스레드에서 개체를 조작, 스칼라 당신이 단지 주변에 전달하는 간단한 데이터 그러나 당신은 작정한다 수행 할 필요가 없다, 객체의 클래스의 pthreads에서 내려한다 :

class Greeting extends Threaded { 

    public function __construct($greet) { 
     $this->greet = $greet; 
    } 

    public function fetch() { 
     return $this->greet; 
    } 

    protected $greet; 
} 

class My extends Thread { 

    public function __construct(Greeting $greet) { 
     $this->greet = $greet; 
    } 

    public function run() { 
     printf(
      "Hello %s\n", $this->greet->fetch()); 
    } 
} 

$greeting = new Greeting("World"); 
$my = new My($greeting); 
$my->start(); 
$my->join(); 
관련 문제