亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 服務器 > Linux服務器 > 正文

linux下php多線程的妙用

2024-09-05 23:02:21
字體:
來源:轉載
供稿:網友
開始用php寫后臺服務一段時間了.也是在這樣的驅動下,不斷的學習php語法,體驗這一原來一直以為神秘且敬而遠之的神奇語言的魅力.最初看php多線程的資料是為了提高程序的處理能力,充分發揮linux多任務的優勢.不曾想多線程沒用成反到是帶來了一系列的意外收獲.讓之后的許多問題迎刃而解,不敢獨享特一一道來.
  
  本文所講的東西是源自php的pcntl_fork函數.因為這個函數依賴操作系統fork的實現,所以本文所講的東西只適用于linux/unix.ok,那么先看看這個函數的用法吧.php手冊上是這么說的:
  
  <?php
  
  $pid = pcntl_fork();
  
  if ($pid == -1) {
  
  die('could not fork');
  
  } else if ($pid) {
  
  // we are the parent
  
  pcntl_wait($status); //Protect against Zombie children
  
  } else {
  
  // we are the child
  
  }
  
  ?>      通過pcntl_fork創建一個子進程,如果返回值是-1的話,那么說明子進程創建失敗.創建成功的進程id會返回給父進程,0返回給子進程.不好理解吧,費了很常時間明白以后,筆者習慣這樣寫:
  
  <?php
  
  $pid = pcntl_fork();
  
  if($pid == -1){
  
  //創建失敗咱就退出唄,沒啥好說的
  
  die('could not fork');
  
  }
  
  else{
  
  if($pid){
  
  //從這里開始寫的代碼是父進程的,因為寫的是系統程序,記得退出的時候給個返回值
  
  exit(0);
  
  }
  
  else{
  
  //從這里開始寫的代碼都是在新的進程里執行的,同樣正常退出的話,最好也給一個返回值
  
  exit(0);
  
  }
  
  }
  
  ?>      這樣一改好理解多了,如果你父進程希望知道子進程正常退出的話,可以加上前面的pcntl_wait.
  
  函數的用法是整明白了,在實際的工作中有什么用處呢?
  
  1.后臺程序
  
  命令行程序好寫,服務程序也好寫,筆者覺得這服務程序最難寫.想想原來想在windows下寫個服務啥的,又是要注冊服務又是要這樣那樣的老費勁了.現在專職管理linux想讓個命令行程序在后臺運行,直接在命令后面加個&就搞定了.但是這樣總覺得土.有了pcntl_fork突然發現世界是那么的美好.當主進程成功創建子進程并獲得子進程的id以后,自己在臨死前還不忘說一句:"我已成功運行,我的id是:xxxx(子進程的id)",完了還給系統返回個0(正常退出),哈哈,死都死的那么有尊嚴.
  
  前面說的是程序常駐內存的情況,當然了這時候要注意內存的釋放以及向日志文件打印信息,而不是往屏幕上(一打印信息程序就退出的喲).還有一種情況是:程序被其它腳本調用,其它腳本只關心程序是不是正常運行,如果程序要運行很長時間才能運行完的話,最好不讓腳本等待.這樣的話pcntl_fork又派上用場了:)
  
  2.延時處理.
  
  有的時候,我們程序退出的時候要清理自身產生的東西,比如說要刪除自己(當然了linux下面是可以刪除正在運行的文件的,只是舉個例子),這個時候就可以另起動一個進程,然后自己結束了,把事情交給另一個進程來做.當我們寫服務程序的時候,我們肯定是寫日志文件記錄程序的運行情況(要不誰知道程序是不是在那睡大覺的:0).程序正常退出的時候我們可以寫一條日志說程序退出了,但是當程序收到linux下偉大的kill -9的時候,怎么記錄自己的退出行為呢?額.....這個和php的進程信號有關好像和這個沒多大關系.
  
  另一種情況:一個完善的程序一般都支持start,stop,restart這樣的參數.start好說,stop也好說,既然start和stop都好說了,這個restart就先stop然后再start就可以了啊.額...好像又和pcntl_fork沒多大關系,當你收到重啟的信號總不能還是kill然后再start吧,是不是太黃太暴力了?還是溫柔一點,讓當前進程退出,讓另外的進程再把它拉起來吧.在windows下想實現這一點似乎很困難呢,比如程序更新的時候,一般都是單寫更新程序,或者程序退出的時候另起動一個批處理啟動自己:)
  
  3.不死進程
  
  其實就是傳說中的雙進程了.早些年的時候萬象網管為了達到不被惡意結束的目的用的就是這招了.雖然咱不用擔心程序被人惡意停止,但是也保不齊主程序因為任務太重抗不住自己先掛了(這種情況也不是不會發生).所以......
  
  說了這么多,只是對寫程序的一些思考,對一個函數用法的延伸.我想到了這么多,你呢?
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产美女高潮久久白浆| 亚洲精品一区在线观看香蕉| 欧美在线www| 欧美大片在线看| 中文字幕无线精品亚洲乱码一区| 91久久精品国产91性色| 92裸体在线视频网站| 久久天天躁狠狠躁夜夜av| 欧美日韩国产第一页| 亚洲曰本av电影| 欧美xxxx14xxxxx性爽| 亚洲国产成人精品久久久国产成人一区| 亚洲一区二区三区久久| 国产精品免费视频久久久| 91精品国产高清自在线看超| 中文字幕精品—区二区| 亚洲一区中文字幕| 欧美日韩第一页| 欧美精品久久久久久久久久| 欧美激情视频一区二区| 成人日韩av在线| 欧美高清自拍一区| 国产免费成人av| 在线观看久久久久久| 国产精品久久久av久久久| 亚洲精选在线观看| 亚洲国产精品久久久久秋霞蜜臀| 在线播放精品一区二区三区| 成人做爰www免费看视频网站| 久久久亚洲精选| 久久久www成人免费精品张筱雨| 国产69久久精品成人看| 日韩成人中文电影| 亚洲网站在线观看| 亚洲第一页在线| 久久在线免费观看视频| 欧美高跟鞋交xxxxxhd| 国产精品久久综合av爱欲tv| 国产精品老女人视频| 国模精品一区二区三区色天香| 人妖精品videosex性欧美| 国产香蕉一区二区三区在线视频| 国产精品av网站| 欧美中文在线视频| 午夜精品久久久久久久99热| 国产精品入口尤物| 国产精品中文久久久久久久| 91视频国产一区| 日韩欧美在线视频日韩欧美在线视频| 国产热re99久久6国产精品| 45www国产精品网站| 俺去了亚洲欧美日韩| 欧美午夜精品久久久久久浪潮| 国产精品日韩欧美综合| 国产一区二区三区欧美| 亚洲免费小视频| 国产剧情久久久久久| 国产精品成人一区| 色樱桃影院亚洲精品影院| 欧美激情视频播放| 92国产精品久久久久首页| 欧美性高跟鞋xxxxhd| 色与欲影视天天看综合网| 欧美国产日韩一区二区| 亚洲一区中文字幕| 97香蕉久久夜色精品国产| 亚洲国产一区二区三区在线观看| 色噜噜狠狠狠综合曰曰曰88av| 清纯唯美亚洲激情| 黑人狂躁日本妞一区二区三区| 国产精品高潮呻吟久久av无限| 欧美精品videossex性护士| 久久久最新网址| 91wwwcom在线观看| 亚洲色图15p| 国产不卡av在线| 97成人在线视频| 久久精视频免费在线久久完整在线看| 亚洲国模精品一区| 久久精品电影网站| 人人做人人澡人人爽欧美| 久热精品视频在线免费观看| 日本一区二区三区四区视频| 亚洲老板91色精品久久| 国产一区红桃视频| 欧美精品激情在线观看| www.日韩不卡电影av| 一道本无吗dⅴd在线播放一区| 日韩av影片在线观看| 亚洲午夜未满十八勿入免费观看全集| 美女撒尿一区二区三区| 亚洲男人天堂九九视频| 亚洲人午夜精品| 国产精品爱久久久久久久| 欧美激情一级欧美精品| 中文字幕av一区二区三区谷原希美| 欧美成人免费全部观看天天性色| 精品福利在线观看| 夜夜嗨av色一区二区不卡| 青草青草久热精品视频在线网站| 欧美一区视频在线| 久久久999国产精品| 97在线精品国自产拍中文| 国产精品99久久久久久久久久久久| 日韩中文娱乐网| 亚洲综合视频1区| 国产精品久久久久久久久久久不卡| 亚洲免费视频观看| 亚洲欧美在线一区| 国产精品美女久久久免费| 中文字幕日本精品| 亚洲人午夜精品免费| 日韩在线播放av| 日韩中文在线观看| 一色桃子一区二区| 亚洲a一级视频| 日韩中文字幕免费视频| 亚洲欧美另类国产| 在线日韩精品视频| 最近中文字幕mv在线一区二区三区四区| 国产专区精品视频| 久久久久久伊人| 亚洲免费精彩视频| 亚洲www永久成人夜色| 色悠悠国产精品| 久久精品国产清自在天天线| 精品福利在线观看| 97精品欧美一区二区三区| 中文字幕日韩免费视频| 美日韩精品免费视频| 亚洲人成电影网站色| 精品一区二区三区四区| 亚洲香蕉成视频在线观看| 国产精品久久久久不卡| 人妖精品videosex性欧美| 精品女厕一区二区三区| 中文字幕亚洲专区| 亚洲国产小视频| 91av在线网站| 日韩精品视频在线观看网址| 精品网站999www| 亚洲丝袜在线视频| 久久久久久久久久久免费精品| 国产精品ⅴa在线观看h| 日韩美女在线观看| 中文字幕日韩av电影| 欧美电影免费观看网站| 国产视频精品va久久久久久| 国产成人精品电影| 国产69精品久久久久久| 成人av.网址在线网站| 国产精品最新在线观看| 国产精品吊钟奶在线| 美女久久久久久久久久久| 亚洲国产精品推荐| 国产综合久久久久| 97成人精品区在线播放| 日韩高清人体午夜| 欧美成人一区二区三区电影| 98精品国产高清在线xxxx天堂| 亚洲一区免费网站| 精品偷拍各种wc美女嘘嘘| 欧美放荡办公室videos4k| 国产区精品在线观看|