站長資訊網
        最全最豐富的資訊網站

        php程序阻塞與非阻塞的區別是什么

        PHP程序阻塞和非阻塞的區別是:阻塞調用結果返回之前,當前線程會被掛起,調用者不會接著往下執行;而非阻塞調用結果返回之前,該調用不會阻塞當前線程,可以繼續向下執行。

        php程序阻塞與非阻塞的區別是什么

        本文操作環境:Windows10系統、PHP7.1版、Dell G3電腦。

        php程序阻塞與非阻塞的區別是什么

        阻塞和非阻塞關注的是程序在等待調用結果(消息,返回值)時的狀態.

        阻塞調用是指調用結果返回之前,當前線程會被掛起。調用線程只有在得到結果之后才會返回。

        非阻塞調用指在不能立刻得到結果之前,該調用不會阻塞當前線程。

        1.php并發阻塞

          對于php來說并發是個問題,工作中經常會碰到一些,寫庫之前的查詢,判斷數據是否存在,但是如果并發的情況下,就會導致數據重復寫入,而你的判斷也成了虛設。所以有了阻塞,我們需要把請求一條一條的執行。

        簡單介紹:

        1.首先,讀寫方式打開或者創建文件lock.txt文件

        2.給lock.txt文件上 "獨占鎖",上鎖成功后就可以進行下一步"處理訂單商品數據了"

        3.處理完數據后,要"釋放鎖”,以及fclose關閉打開的文件

        注意:給文件“獨占鎖”后,如果再沒有里面的“釋放鎖”,會出現非常卡的情況

        public function index(){     $fp = fopen("lock.txt", "w+");     if(flock($fp,LOCK_EX))     {         $find=Db::name('user')->where('username','name2')->find();         if($find){             $data['username']='name3';             $data['password']='';             $data['password_m']='';             Db::name('user')->insert($data);         }else{             $data['username']='name2';             $data['password']='';             $data['password_m']='';             Db::name('user')->insert($data);         }         flock($fp,LOCK_UN);     }     fclose($fp);     return 'success'; }

        注意:對于小并發可行,而且性能不會出現大的影響。并發小于500較好,如果過高的話,建議使用隊列模式。

        2.php非阻塞模式

        非阻塞模式我們常用在php程序內部調用第三方api接口,或者不需要等待結果的程序。

        舉一個簡單的例子。發送郵件,你要發送給你的所有的老大,那么你需要全部都發送一遍,也許你得寫一個循環,那么這一個循環中發郵件的方法需要執行時間,需要拿到返回值,執行下一次循環,這個時間依次累加,最后時間會邊的很長,

        那么這種被稱之為阻塞,而我們一直想要的是提交過去,不需要等待返回數據,你就循環的跑一遍就好了,那么我們想的這個就是非阻塞模式。對于這種的話,php也沒有什么好的函數來處理,所以我們做的最多的還是隊列出來,發郵件的時候,

        根據隊列去執行,其實用到的還是阻塞模式。但是我們的請求執行時間會被壓縮的很短,最常用的就是調用API接口,而你此時又不關心返回值的時候。

        推薦學習:《PHP視頻教程》

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 黄床大片免费30分钟国产精品| 中文字幕精品无码一区二区| 久久97久久97精品免视看 | 国产午夜无码精品免费看| 国产区精品福利在线观看精品| 凹凸国产熟女精品视频app| 一区二区国产精品| 久久青青草原精品国产软件| 8050免费午夜一级国产精品| 99久久国产热无码精品免费| 老司机亚洲精品影院无码| 亚洲乱码日产精品a级毛片久久| 精品国产亚洲男女在线线电影 | 国产福利电影一区二区三区久久久久成人精品综合| 色欲精品国产一区二区三区AV| 日韩精品无码永久免费网站| 国产亚洲精品国看不卡| 国产精品H片在线播放| 777欧美午夜精品影院| 精品久久久久久亚洲| 3D动漫精品一区二区三区| 国产精品成人观看视频国产奇米 | 亚洲精品成人无码中文毛片不卡| 久久亚洲国产精品五月天婷| 国产精品无码一区二区在线观一 | 国产精品视频一区二区三区无码| 亚洲AV日韩精品久久久久久久| 欧美日韩专区麻豆精品在线 | 精品一卡2卡三卡4卡免费视频| 国产综合精品一区二区三区| 午夜精品久久久久久99热| 亚洲精品乱码久久久久久自慰 | 欧美精品一区二区三区视频| 精品一区二区久久| 999久久久国产精品| 国产成人精品久久一区二区三区av | 97久久精品无码一区二区| 国产精品亚洲片在线观看不卡 | 国产在线精品无码二区| A级精品国产片在线观看| 69SEX久久精品国产麻豆|