Pythonは非常に人気なプログラミング言語で、その中でもthreading
モジュールのLock
メソッドは重要な機能の一つです。この記事では、PythonでのLock
の使い方について詳しく解説します。
Lockとは
Lock
は、Pythonのthreading
モジュールで提供されているメソッドで、スレッドの制御を行うためのものです。Lock
メソッドを利用すると、「lock.acquire ()」から「lock.release ()」までの間の処理が他のスレッドに邪魔されなくなります。
Lockの使い方
以下に、PythonでのLock
の基本的な使い方を示します。
import threading
import time
def process1(lock):
print('ーー処理1が開始')
lock.acquire() # スレッドのロックが開始。他のスレッドはreleaseされるまで処理はできない。
time.sleep(3) # 処理を再現
lock.release() # スレッドのロックが終了。他のスレッドも処理が可能。
print('ーー処理1が終了')
def process2(lock):
print('ーー処理2が開始')
with lock: # スレッドのロックが開始。他のスレッドはwithステートメントを抜けるまで処理できない。
time.sleep(3) # 処理を再現
print('ーー処理2が終了')
if __name__ == '__main__':
lock = threading.Lock() # スレッドを行うインスタンスの作成
p1 = threading.Thread(target=process1, args=(lock,))
p2 = threading.Thread(target=process2, args=(lock,))
p1.start()
p2.start()
このコードでは、process1
とprocess2
でスレッドの処理を再現しています。process1
では「lock.acquire ()」から「lock.release ()」を利用したLock
の例、process2
ではwith
ステートメントを利用したLock
の例です。
以上がPythonでのLock
の基本的な使い方です。詳細な使い方やその他の情報については、Pythonの公式ドキュメントを参照してください。