美文网首页
有意思的php多线程扩展 pthreads

有意思的php多线程扩展 pthreads

作者: Spooking | 来源:发表于2019-09-23 10:12 被阅读0次

    最近有个windwos小项目用到了php多线程,没什么可选的只能使用 pthreads,遇到一些有意思的小坑坑,记录下希望对读到的朋友有帮助。

    1、只能在主线程创建子线程

    我本来想把自己的一个class通过zephir编译成扩展,这部分代码刚好继承了thread,调用->start()提示错误。

    2、两个线程变量名称一样,只能一个一个执行(阻塞)。
    class cct extends Thread {
                    private $c;
                    
                    function __construct($c){
                        $this->c=$c;
                    }
                    public function run() {
                        while($i++<10){
                            usleep(100000);
                            echo $this->c;
                        }
                    }
                }
    function mkt($c){
        $t = new cct($c);
        $t->start();
    }
    $a = new cct("a");
    $a->start();
    $a = new cct("b");
    $a->start();
    
    mkt("c");
    mkt("d");
    

    输出结果:aaaaaaaaaabcbcbcbcbcbcbcbcbcbcdddddddddd

    所以,所有的线程必须提前建好,不可能后期在代码运行时随时生成,即使用eval也没用。

    相关文章

      网友评论

          本文标题:有意思的php多线程扩展 pthreads

          本文链接:https://www.haomeiwen.com/subject/pfypuctx.html