解决方案 »

  1.   

    没看懂问题,但我隐隐觉得static这个词会派上用场...
      

  2.   


    class A extends Stackable
    {
        ...
      

  3.   


    <?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();
      

  4.   

    static 或者 &传引用
    你们怎么看