zoukankan      html  css  js  c++  java
  • PHP pthread多线程

    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" . "
    ", 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!" . "
    ", FILE_APPEND);
    echo "<br>";
    

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


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

  • 相关阅读:
    mysql 查询优化 ~ select count 知多少
    mongodb 案例 ~ 经典故障案例
    printk 驱动调试
    21天学通C++学习笔记(七):函数
    OPC UA
    MQTT
    分库分表
    水平、垂直权限问题(横向越权与纵向越权)
    数据库中的行转列和列转行
    面试知识点
  • 原文地址:https://www.cnblogs.com/jing1208/p/7217523.html
Copyright © 2011-2022 走看看