㈠ php如何解決多進程同時讀寫一個文件的方法
/*
*flock(file,lock,block)
*file 必需,規定要鎖定或釋放的已打開的文件
*lock 必需。規定要使用哪種鎖定類型。
*block 可選。若設置為 1 或 true,則當進行鎖定時阻擋其他進程。
*lock
*LOCK_SH 要取得共享鎖定(讀取的程序)
*LOCK_EX 要取得獨占鎖定(寫入的程序)
*LOCK_UN 要釋放鎖定(無論共享或獨占)
*LOCK_NB 如果不希望 flock() 在鎖定時堵塞
/*
if (flock($file,LOCK_EX))
{
fwrite($file,'write more words');
flock($file,LOCK_UN);
}
else
{
//處理錯誤邏輯
}
fclose($file);
)
㈡ PHP 到底是單進程還是多進程
默認是單進程,可以支持多進程
㈢ 有辦法在windows下實現PHP的多進程編程嗎
你先想清楚是否真的需要fork, signal, priority等pcntl的特性,如果其實你只是想要另外新開一個進程,也可以通過cli下面用exec執行額外的php進程來一定程度上模擬多進程
如果你確實需要fork等特性:
cygwin是Windows上的POSIX環境,你可以在上邊試試編譯php以及pcntl的擴展(不知道是否能走通)
上虛擬機吧