pthreads等待线程函数在继续之前完成

时间:2016-08-10 22:13:09

标签: php multithreading pthreads

第一次使用pthreads。我创建了一个扩展Threads并像往常一样从另一个调用它的类。

这是我的代码:

NSLog("Can anyone hear me?")

我从Rest api方法调用此函数:

<?php
class TestThread extends Thread
{
    //
    function __construct($parameters) {
        $this->reverse = $parameters;
    }   

    public function run() {
        try {
            sleep(20);
            // Connecting to mysql database
            $cn = new mysqli(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_NAME);
            INSERT INTO DEVICE_SESSION_ADDRESS (X, Y, Z)
                VALUES (1,2,3)   
        } catch (Exception $ex) {
           //do stuffs
        } 
    }       
}
?>

使用Postman测试其余的api,它在释放呼叫之前等待20秒。 该功能有效,它可以插入数据库。

我可以做些什么来解决它并异步调用我的类TestThread?

1 个答案:

答案 0 :(得分:2)

由于pthreads完美无缺,我确信问题有以下原因之一:

    未安装
  1. pthreads。查看phpinfo()部分的pthreads
  2. 您在Apache请求中调用pthreads。在这种情况下,pthreads无法正常工作。请参阅此说明: SAPI支持下的https://github.com/krakjoe/pthreads。您只能将pthreads用作CLI。
  3. 确保两个点都已解决,然后才能生效!