2012-11-08 12 views
9

W dokumentacji modułu threading mówiKorzystanie threading.Lock jako kierownik kontekstowego

Wszystkie obiekty przewidziane przez ten moduł, które mają nabyć() i uwalnianiu() metody mogą być stosowane jako menedżerów kontekstowych dla instrukcji o numerze . Metoda receive() zostanie wywołana, gdy wprowadzony zostanie blok , a funkcja release() zostanie wywołana, gdy blok zostanie zakończony.

Zastanawiam się, czy jest wywoływane w trybie blokowania lub nie blokowania?

Odpowiedz

8

Patrząc na CPython source, wydaje się, że jest wywoływana z domyślnymi argumentami, co oznacza tryb blokowania.

Metody, na które chcesz spojrzeć, to: __enter__(), który jest wywoływany na początku bloku with i __exit__(), który jest wywoływany na końcu.

Powiązane problemy