在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/PHP  Python  Linux/ 寫文件時加鎖,怎樣才規(guī)范?

寫文件時加鎖,怎樣才規(guī)范?

今天寫一些關(guān)于文件操作的代碼,發(fā)現(xiàn)不知道是不是個人理解問題,對加鎖的一些機制不是很理解
首先簡單描述一下,就是我要實現(xiàn)'寫文件'的功能,假設(shè)需要寫的文件是a.conf吧

在php中,加鎖的代碼大致是這樣的:

$fp = fopen('a.conf', 'w');
flock($fp, LOCK_EX);
/// do something
fclose($fp);

在python中大致是這樣的:

f = open('a.conf', 'w')
fcntl.flock(f, fcntl.LOCK_EX)
# do something
fcntl.flock(f,fcntl.LOCK_UN)

以python為例吧
這里我有一個疑惑,在open之后,由于是以'w'方式打開的,因此實際上在open執(zhí)行后,在flock之前,已經(jīng)對a.conf進行了寫操作了(清空了文件),于是我認為是我的代碼不符合規(guī)范,想問一下實際工程中應(yīng)該如何實現(xiàn)這種操作


問題在上面了,下面是一下個人的嘗試
我的想法是不對a.conf加鎖,而是對a.conf.lock加鎖

f = open('a.conf.lock', 'w')
fcntl.flock(f, fcntl.LOCK_EX)
# do something
fcntl.flock(f,fcntl.LOCK_UN)

但是如果其他程序不是以這種方式獲得鎖的話,這個鎖看起來沒有意義
上網(wǎng)查找也只能找到簡單地如何給鎖加鎖的教程,于是想來這里問一下
謝謝各位

回答
編輯回答
失心人

flock的是建議鎖,因此不適合題主的需求

2018年2月23日 09:59