Pythonで複数スレッドで同じファイルをどのように読み込むか

同じファイルをマルチスレッドで読み取る方法は次のとおりです。

  1. 同時実行
  2. 各スレッドではこの関数を実行し、同じファイルオブジェクトを渡す。
  3. スレッド.ロック()

以下に簡単なサンプルコードを示します。

import threading

def read_file(file):
    # 读取文件操作
    with open(file, 'r') as f:
        data = f.read()
        print(f'Thread {threading.current_thread().name} read: {data}')

def main():
    file = 'file.txt'  # 待读取的文件

    # 创建线程对象
    thread1 = threading.Thread(target=read_file, args=(file,))
    thread2 = threading.Thread(target=read_file, args=(file,))

    # 启动线程
    thread1.start()
    thread2.start()

    # 等待线程结束
    thread1.join()
    thread2.join()

if __name__ == '__main__':
    main()

上の例では、read_file()関数はファイルを読み取るために使用され、ファイルの正しいクローズを確実にするためにwith open()ステートメントが使用されます。threading.Thread()はスレッドオブジェクトの作成に使用され、targetパラメータによって実行される関数を指定し、argsパラメータは関数の引数(ここではファイル名)を渡すために使用されます。thread1.start()とthread2.start()はスレッドの開始に使用され、thread1.join()とthread2.join()はスレッドの終了を待機するために使用されます。最後に、main()関数はこれらの関数を呼び出して、同じファイルをマルチスレッドで読み取るようにします。

bannerAds