中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在PHP中利用Pthread實現一個多線程

發布時間:2021-01-26 15:17:38 來源:億速云 閱讀:102 作者:Leah 欄目:開發技術

本篇文章給大家分享的是有關如何在PHP中利用Pthread實現一個多線程,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

具體如下:

<?php 
class vote extends Thread {
  public $res  = '';
  public $url  = array();
  public $name  = '';
  public $runing = false;
  public $lc   = false;
  public function __construct($name) {
    $this->res  = '暫無,第一次運行.';
    $this->param  = 0;
    $this->lurl  = 0;
    $this->name  = $name;
    $this->runing = true;
    $this->lc   = false;
  }
  public function run() {
    while ($this->runing) {
      if ($this->param != 0) {
        $nt     = rand(1, 10);
        echo "線程[{$this->name}]收到任務參數::{$this->param},需要{$nt}秒處理數據.\n";
        $this->res  = rand(100, 999);
        sleep($nt);
        $this->lurl = $this->param;
        $this->param  = '';
      } else {
        echo "線程[{$this->name}]等待任務..\n";
      }
      sleep(1);
    }
  }
}
//這里創建線程池.
$pool[] = new vote('a');
$pool[] = new vote('b');
$pool[] = new vote('c');
//啟動所有線程,使其處于工作狀態
foreach ($pool as $w) {
  $w->start();
}
//派發任務給線程
for ($i = 1; $i < 10; $i++) {
  $worker_content = rand(10, 99);
  while (true) {
    foreach ($pool as $worker) {
      //參數為空則說明線程空閑
      if ($worker->param=='') {
        $worker->param = $worker_content;
        echo "[{$worker->name}]線程空閑,放入參數{$worker_content},上次參數[{$worker->lurl}]結果[{$worker->res}].\n";
        break 2;
      }
    }
    sleep(1);
  }
}
echo "所有線程派發完畢,等待執行完成.\n";
//等待所有線程運行結束
while (count($pool)) {
  //遍歷檢查線程組運行結束
  foreach ($pool as $key => $threads) {
    if ($worker->param=='') {
      echo "[{$threads->name}]線程空閑,上次參數[{$threads->lurl}]結果[{$threads->res}].\n";
      echo "[{$threads->name}]線程運行完成,退出.\n";
      //設置結束標志
      $threads->runing = false;
      unset($pool[$key]);
    }
  }
  echo "等待中...\n";
  sleep(1);
}
echo "所有線程執行完畢.\n";

以上就是如何在PHP中利用Pthread實現一個多線程,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

湛江市| 沽源县| 红原县| 华亭县| 南川市| 宁乡县| 伊宁县| 汉阴县| 普兰店市| 平安县| 湘乡市| 永宁县| 阜平县| 新郑市| 治县。| 南郑县| 宜兰县| 陇南市| 读书| 阿拉善盟| 海城市| 阿巴嘎旗| 平乡县| 冀州市| 曲松县| 清远市| 曲阜市| 渑池县| 调兵山市| 旬阳县| 五华县| 北票市| 元阳县| 铁力市| 蓬溪县| 仙居县| 兴仁县| 闻喜县| 将乐县| 威远县| 江口县|