Pythonで複数スレッドで同じファイルをどのように読み込むか
同じファイルをマルチスレッドで読み取る方法は次のとおりです。
- 同時実行
- 各スレッドではこの関数を実行し、同じファイルオブジェクトを渡す。
- スレッド.ロック()
以下に簡単なサンプルコードを示します。
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()関数はこれらの関数を呼び出して、同じファイルをマルチスレッドで読み取るようにします。