我只是想知道在几种情况下python的模块filelock及其行为的具体情况。Python的filelock模块行为使用`with:`语句
首先,线程处理with:
语句的确切程度。如果多个线程调用with:
它是否锁定在一个线程的基础上?两个线程可能同时获得锁吗?
其次,当我使用with:
时,我是否必须在使用后清除锁定? with:
声明完成后锁是否自动清除?
第三,我在我的代码中有一个实例,我相信一个文件必须被创建,然后立即锁定。目前我使用此:
channel_file = open(os.path.join('channels', username), 'w+')
with filelock.FileLock(os.path.join('channels', username)):
channel_file.write(json.dumps({'rate': reobj.group(1),'time': reobj.group(2)}))
如果有可能另一个线程可以读,因为它创建时的文件,这会防止呢?
这也提出了第四点。文件锁定在使用with:
时锁定读取访问吗?