나는 5 초마다 쓰레드를 생성하는 루프를 가지고 있으며, 각 쓰레드는 파이썬에서 파일 잠금 모듈을 사용하여 같은 파일을 추가하려하지만 끝나는 것처럼 보인다. 추가 정보 : : 파일을파이썬 2.7 파일은 "a"(쓰레드와 파일 락 사용)를 사용한 후에도 덮어 쓴다.
import threading
import filelock
def loop():
threading.Timer(5,loop).start()
lock = filelock.FileLock("PATH", timeout=20)
with lock.acquire(timeout=0.1, poll_intervall=0.01):
with open("PATH", "a") as myFile:
myFile.write("DATA\n\n")
lock.release()
편집 -writing 여러 반복 후를, 내가 파일에있는 데이터는 마지막 스레드에서이었고, 처음 없습니다.
편집 : 아래의 georgexsh에서 주석 처리 한대로 append는 원자 적이며 따라서 잠금을 필요로하지 않습니다.
docs는'FileLock'의 file 매개 변수가 쓰여지지 않아야한다고 생각합니다. – quamrana
FileLock 클래스에서 제공하는 file 매개 변수가 아닌 외부 파일에 쓰고 있습니다. – ubanthia
'FileLock '을 호출하면 "PATH"가 인용됩니다. 'open()'호출은 "PATH"를 인용합니다. 그것은 당신이 "PATH"를 자물쇠와 쓰기를 원하는 파일로 사용하고 있다고 생각합니다. – quamrana