php實(shí)現(xiàn)阻塞的方法:首先讀寫方式打開或者創(chuàng)建文件【lock.txt】文件;然后給【lock.txt】文件上【獨(dú)占鎖】;最后處理完數(shù)據(jù)后,要【釋放鎖】以及fclose關(guān)閉打開的文件。
本教程操作環(huán)境:windows7系統(tǒng)、PHP5.6版,DELL G3電腦,該方法適用于所有品牌電腦。
php實(shí)現(xiàn)阻塞的方法:
1、首先,讀寫方式打開或者創(chuàng)建文件lock.txt文件
2、給lock.txt文件上 "獨(dú)占鎖",上鎖成功后就可以進(jìn)行下一步"處理訂單商品數(shù)據(jù)了"
3、處理完數(shù)據(jù)后,要"釋放鎖”,以及fclose關(guān)閉打開的文件
注意:給文件“獨(dú)占鎖”后,如果再?zèng)]有里面的“釋放鎖”,會(huì)出現(xiàn)非常卡的情況
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'; }
注意:對于小并發(fā)可行,而且性能不會(huì)出現(xiàn)大的影響。并發(fā)小于500較好,如果過高的話,建議使用隊(duì)列模式。
相關(guān)免費(fèi)學(xué)習(xí)推薦:php編程(視頻)