91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

如何在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

马边| 界首市| 宜丰县| 耒阳市| 新绛县| 阿合奇县| 邢台县| 正镶白旗| 赤壁市| 石狮市| 改则县| 榆中县| 西丰县| 密云县| 个旧市| 亳州市| 广丰县| 玛多县| 莒南县| 甘孜县| 灌阳县| 永靖县| 福海县| 通河县| 富民县| 林口县| 崇礼县| 海伦市| 四会市| 阳高县| 札达县| 晋州市| 乌拉特前旗| 荔浦县| 龙岩市| SHOW| 包头市| 鸡西市| 东港市| 天祝| 共和县|