<?php class A extends Stackable { var $dat; public function __construct($dat) { $this->dat = $dat; $this->dat->a = 0; echo "class A construct: \n"; var_dump($this->dat); } public function add() { $this->dat->a++; echo "class A add: \n"; var_dump($this->dat); } public function get() { echo "class A get: \n"; var_dump($this->dat); return $this->dat; }
} class workerThread extends Thread { var $data = 0; var $datc; public function __construct($i, $A){ $this->i=$i; $this->datc = $A; echo "thread construct: \n"; var_dump($this->datc); }
public function opp() { $this->data ++; $this->datc->add(); }
public function set() { $this->data = 8; }
public function show() { echo "thread show: \n"; var_dump($this->datc); var_dump($this->data); var_dump($this->datc->get()); }
public function run(){ $this->opp(); $this->show(); } }// 1、只有Stackable对象才能在线程中传递 2、并且线程间被传递的对象一定要在全局有引用 $dat = new Stackable(); $A = new A($dat); $workers=new workerThread(6, $A); $workers->set(); $workers->start();
class A extends Stackable
{
...
<?php
class A extends Stackable
{
var $dat;
public function __construct($dat)
{
$this->dat = $dat;
$this->dat->a = 0;
echo "class A construct: \n";
var_dump($this->dat);
}
public function add()
{
$this->dat->a++;
echo "class A add: \n";
var_dump($this->dat);
}
public function get()
{
echo "class A get: \n";
var_dump($this->dat);
return $this->dat;
}
}
class workerThread extends Thread {
var $data = 0;
var $datc;
public function __construct($i, $A){
$this->i=$i;
$this->datc = $A;
echo "thread construct: \n";
var_dump($this->datc);
}
public function opp()
{
$this->data ++;
$this->datc->add();
}
public function set()
{
$this->data = 8;
}
public function show()
{
echo "thread show: \n";
var_dump($this->datc);
var_dump($this->data);
var_dump($this->datc->get());
}
public function run(){
$this->opp();
$this->show();
}
}// 1、只有Stackable对象才能在线程中传递 2、并且线程间被传递的对象一定要在全局有引用
$dat = new Stackable();
$A = new A($dat);
$workers=new workerThread(6, $A);
$workers->set();
$workers->start();
你们怎么看