对象变量在PHP pthreads中丢失上下文

时间:2014-01-07 02:50:26

标签: php multithreading curl pthreads

我在PHP中使用pthreads并注意到pthreads在其上下文中丢失了对象变量,这是正常的还是错误还是我做错了什么?

class Downloader extends Thread {

    private $ch;

    public function __construct($data) {
        $this->ch = curl_init();
    }

    public function __destruct() {
        curl_close($this->ch);
    }

    public function run() {
        // we just lost resource of curl -> [resource(4) of type (Unknown)]
        curl_setopt($this->ch, CURLOPT_URL, $this->url);
    }
}

1 个答案:

答案 0 :(得分:1)

这是正常的:https://gist.github.com/krakjoe/6437782

我没有必要再次写出相关部分;你将从阅读整篇文章中受益。

TL; DR资源正式不受支持,再加上pthreads对象的工作方式,这会导致您遇到的行为。