MutexLock

publiczna klasa końcowa MutexLock

Blokuje zasób mutex. Wyjściem jest zamek. Tak długo, jak tensor blokady

jest aktywna, każda inna prośba o użycie `MutexLock` z tym mutexem będzie czekać.

Jest to szczególnie przydatne do tworzenia sekcji krytycznej, gdy jest używane w połączeniu z `MutexLockIdentity`:

mutex = mutex_v2(
   shared_name=handle_name, container=container, name=name)
 
 def execute_in_critical_section(fn, *args, **kwargs):
   lock = gen_resource_variable_ops.mutex_lock(mutex)
 
   with ops.control_dependencies([lock]):
     r = fn(*args, **kwargs)
 
   with ops.control_dependencies(nest.flatten(r)):
     with ops.colocate_with(mutex):
       ensure_lock_exists = mutex_lock_identity(lock)
 
     # Make sure that if any element of r is accessed, all of
     # them are executed together.
     r = nest.map_structure(tf.identity, r)
 
   with ops.control_dependencies([ensure_lock_exists]):
     return nest.map_structure(tf.identity, r)
 
Gdy `fn` działa w sekcji krytycznej, nie mogą działać żadne inne funkcje, które chcą używać tej sekcji krytycznej.

Często zdarza się, że dwa równoległe wykonania tego samego wykresu chcą uruchomić `fn`; i chcemy mieć pewność, że tylko jeden z nich będzie wykonywany w danym momencie. Jest to szczególnie ważne, jeśli „fn” modyfikuje jedną lub więcej zmiennych na raz.

Jest to również przydatne, jeśli dwie oddzielne funkcje muszą współdzielić zasób, ale chcemy mieć pewność, że użycie będzie wyłączne.

Metody publiczne

Wyjście <Obiekt>
jako wyjście ()
Zwraca symboliczny uchwyt tensora.
statyczny MutexLock
utwórz ( Zakres zasięgu, Operand <?> mutex)
Metoda fabryczna służąca do tworzenia klasy opakowującej nową operację MutexLock.
Wyjście <?>
mutexLock ()
Tensor przechowujący wspólny wskaźnik do blokady na muteksie; gdy Tensor zostanie zniszczony, licznik użycia wspólnego wskaźnika zmniejsza się o 1.

Metody dziedziczone

Metody publiczne

publiczne wyjście <Obiekt> asOutput ()

Zwraca symboliczny uchwyt tensora.

Dane wejściowe operacji TensorFlow są wynikami innej operacji TensorFlow. Ta metoda służy do uzyskania symbolicznego uchwytu reprezentującego obliczenia danych wejściowych.

public static MutexLock create (zakres zakresu , operand <?> mutex)

Metoda fabryczna służąca do tworzenia klasy opakowującej nową operację MutexLock.

Parametry
zakres aktualny zakres
muteks Zasób mutex do zablokowania.
Zwroty
  • nowa instancja MutexLock

publiczne wyjście <?> mutexLock ()

Tensor przechowujący wspólny wskaźnik do blokady na muteksie; gdy Tensor zostanie zniszczony, licznik użycia wspólnego wskaźnika zmniejsza się o 1. Kiedy osiągnie 0, blokada zostaje zwolniona.