PHP pthreads命名空间传递问题

时间:2014-01-04 11:32:15

标签: php multithreading pthreads xdebug

我在使用pthreads支持开发应用程序时遇到了问题。如果我不调用pthreads函数start(),一切都按计划运行。但是通过调用start()函数,名称空间被破坏了(我想是这样),而我的类什么也没做。这是样本:

namespace LF\Utility;
use LF\Utility\Callme;

class Threaded extends \Thread {

    public function __construct(){
        //Constructor stuff
    }

    public function run(){
        echo "in thread";
        $test = new Callme(1);
    }
}

和Callme:

namespace LF\Utility;

class Callme {

    public function __construct($val)
    {
        echo "num: " . $val;
    }

}

使用$thread->run()给出正确的结果,调用$thread->start()不会调用Callme构造函数。第二件事是我无法用xDebug调试线程部分的代码,有没有简单的方法呢?

谢谢你的时间!

1 个答案:

答案 0 :(得分:1)

以下代码适用于我。

<?php
namespace LF\Utility;

require_once 'callme.php';

use LF\Utility\Callme;

class Threaded extends \Thread {

    public function __construct(){
        //Constructor stuff
    }

    public function run(){
        echo "in thread" . PHP_EOL;
        $test = new Callme(1);
    }
}

$t = new Threaded();
$t->start();

如何在主类中加载“Callme”类?自动加载磁带机?或者是其他东西?请检查一下。