Python Windows Несколько программистов, работающих одновременно в одном файле - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть требование записать в файл текстового журнала для нескольких программ все в одном текстовом файле, я думал, что мне нужен какой-то механизм блокировки, но затем я написал простую многопоточность и заметил, что некоторые журналы не доходят до финалатекстовый файл?

def abc1Thread():
    import portalocker
    print ("-----------------abc1-Thread --------------------")
    g = open("testFile", "a")
    cnt = 0
    f1 = open("A.txt", "a")
    while (True):
        cnt = cnt+1
        if cnt == 10: break
        print ("abc1Thread: cnt --> ",cnt+1)
        f1.write("abc1Thread: cnt --> "+ str(cnt)+ "\n")

    print ("close file handle: "+ str(f1))
    f1.close()

def abc2Thread():
    import portalocker
    print("-----------------abc2-Thread --------------------")
    cnt = 0
    f2 = open("A.txt", "a")
    while (True):
        cnt = cnt+1
        if cnt == 10: break
        print("abc2Thread: cnt --> ", cnt)
        f2.write("abc2cThread: cnt --> "+str(cnt)+"\n")

    print ("close file handle: "+ str(f2))
    f2.close()


def fileWriteShare():
    thrd1 = threading.Thread(target=abc1Thread, args=[])
    thrd2 = threading.Thread(target=abc2Thread, args=[])
    thrd1.start()
    thrd2.start()

Как я могу заблокировать и разблокировать в windows python текстовый файл, чтобы все программы могли писать надежно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...