21,886
社区成员
发帖
与我相关
我的任务
分享
<?php
class A
{
var $dat;
public function __construct()
{
$this->dat = 0;
echo "class A construct: \n";
var_dump($this->dat);
}
public function add()
{
$this->dat++;
echo "class A add: \n";
var_dump($this->dat);
}
public function get()
{
return $this->dat;
echo "class A get: \n";
var_dump($this->dat);
}
}
class workerThread extends Thread {
var $data = 0;
var $datc;
public function __construct($i){
$this->i=$i;
$this->datc = new 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();
}
}
$workers=new workerThread(6);
$workers->set();
$workers->start();
?>
<?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
{
...