Python:標準庫fcntl給打開的文件加鎖
函數簽名
fcntl.flock(f.fileno(), operation)
1
operation 的操作包括以下選項:
LOCK_NB可以同LOCK_SH或LOCK_NB進行按位或(|)運算操作
代碼示例
# -*- coding: utf-8 -*- import fcntl import time def lock(f): fcntl.flock(f, fcntl.LOCK_EX | fcntl.LOCK_NB) def un_lock(f): fcntl.flock(f, fcntl.LOCK_UN) from multiprocessing import Process def open_file(): f = open('test.txt', 'r') lock(f) # 加鎖 print(f.read()) time.sleep(3) un_lock(f) f.close() Process(target=open_file).start() Process(target=open_file).start()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
多進程情況下,如果一個進程給文件加鎖了,另一個進程會報錯,拋出異常
Python 任務調度
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。