このモジュールのオブジェクトで acquire() と release() 両メソッドを 具えているものは全て with 文のコンテキストマネージャとして使うことができます。 acquire() メソッドが with 文のブロックに入るときに呼び出され、 ブロック脱出時には release() メソッドが呼ばれます。
現在のところ、Lock、RLock、Condition、Semaphore、 BoundedSemaphore を with 文のコンテキストマネージャと して使うことができます。以下の例を見てください。
from __future__ import with_statement import threading some_rlock = threading.RLock() with some_rlock: print "some_rlock is locked while this executes"