我在使用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调试线程部分的代码,有没有简单的方法呢?
谢谢你的时间!
答案 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”类?自动加载磁带机?或者是其他东西?请检查一下。