PHP pthread多线程

本文通过一个PHP线程应用示例介绍了如何创建和使用线程,包括线程构造函数、run方法的实现以及join方法的作用。
class test extends Thread {

    public $arg;
    public function __construct($arg){
        $this->arg = $arg;
    }

    public function run(){
        if($this->arg){
            sleep(1);
            echo "Hello " . $this->arg .':'. date("Y-m-d H:i:s") . "<br>";
            sleep(1);
            // file_put_contents("./log.txt", date("Y-m-d H:i:s") . "I Am SonPthread" . "\r\n", FILE_APPEND);
        }
    }
}

$thread = new test("World");
echo "Start Pthread:" . date("Y-m-d H:i:s") . "<br>";
sleep(1);
$thread->start();
/*
* Hello World:2017-07-20 11:22:29
* Start Pthread:2017-07-20 11:22:27
* main thread:2017-07-20 11:22:28
*/

if($thread->start()){
    $thread->join();
}
/*
* Hello World:2017-07-20 11:23:23
* Start Pthread:2017-07-20 11:23:21
* main thread:2017-07-20 11:23:24
*/

echo "main thread:".date("Y-m-d H:i:s") . "<br>";;
file_put_contents("./main.txt", date("Y-m-d H:i:s") . ":Main Thread!" . "\r\n", FILE_APPEND);
echo "<br>";

 

join方法的作用是让当前主线程等待该线程执行完毕
确认被join的线程执行结束,和线程执行顺序没关系。
也就是当主线程需要子线程的处理结果,主线程需要等待子线程执行完毕
拿到子线程的结果,然后处理后续代码。


官方文档链接地址:http://www.php.net/manual/en/book.pthreads.php

转载于:https://www.cnblogs.com/jing1208/p/7217523.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值