tf.train.LooperThread
Поток, который многократно выполняет код, необязательно по таймеру.
tf.train.LooperThread(
coord, timer_interval_secs, target=None, args=None, kwargs=None
)
Этот класс потока предназначен для использования с Coordinator. Он многократно выполняет код, указанный либо как target и args, либо методом run_loop().
Перед каждым запуском поток проверяет, запросил ли координатор остановку. В этом случае поток looper завершается немедленно.
Если выполняемый код вызывает исключение, это исключение сообщается координатору, и поток завершается. Затем координатор запросит остановку всех других потоков, которые он координирует.
Обычно вы передаете потоки looper методу супервизора Join().
| Аргументы | |
|---|---|
coord | Координатор. |
timer_interval_secs | Границы времени, в которые нужно вызывать Run(), или None, если его нужно вызывать друг за другом. |
target | Необязательный вызываемый объект, который будет выполняться в потоке. |
args | Необязательные аргументы для передачи методу target при его вызове. |
kwargs | Необязательные ключевые аргументы для передачи методу target при его вызове. |
| Исключения | |
|---|---|
ValueError | Если один из аргументов недействителен. |
| Атрибуты | |
|---|---|
daemon | Логическое значение, указывающее, является ли этот поток демоновым потоком. Это должно быть установлено до вызова start(), иначе возникает ошибка RuntimeError. Его начальное значение унаследовано от создающего потока; основной поток не является демоновым потоком, и поэтому все потоки, созданные в основном потоке, по умолчанию имеют daemon = False. Вся программа Python завершается, когда остаются только демонические потоки. |
ident | Идентификатор потока этого потока или None, если он еще не запущен. Это целое число, отличное от нуля. См. функцию get_ident(). Идентификаторы потоков могут быть переиспользованы, когда поток завершается, и создается другой поток. Идентификатор доступен даже после завершения потока. |
name | Строка, используемая только для идентификации. Она не имеет семантики. Несколько потоков могут иметь одно и то же имя. Начальное имя задается конструктором. |
Методы
getName
getName()
isAlive
isAlive()
Возвращает, жив ли поток.
Этот метод устарел, используйте is_alive() вместо него.
isDaemon
isDaemon()
is_alive
is_alive()
Возвращает, жив ли поток.
Этот метод возвращает True непосредственно перед началом метода run() и сразу после завершения метода run(). Функция модуля enumerate() возвращает список всех живых потоков.
join
join(
timeout=None
)
Ожидание завершения потока.
Это блокирует вызывающий поток до тех пор, пока поток, для которого вызван метод join(), не завершится — либо нормально, либо из-за необработанного исключения, или пока не произойдет необязательный тайм-аут.
Если аргумент timeout присутствует и не равен None, он должен быть числом с плавающей точкой, определяющим тайм-аут операции в секундах (или их долях). Поскольку join() всегда возвращает None, вы должны вызвать is_alive() после join(), чтобы определить, произошел ли тайм-аут — если поток все еще жив, вызов join() истек по тайм-ауту.
Если аргумент timeout не присутствует или равен None, операция будет блокироваться до завершения потока.
Поток может быть объединён (join) многократно.
join() вызывает исключение RuntimeError, если попытка объединить текущий поток, так как это приведет к тупиковой ситуации. Также ошибка — объединять (join) поток до его запуска, и попытка сделать это вызывает то же исключение.
loop
@staticmethod
loop(
coord, timer_interval_secs, target, args=None, kwargs=None
)
Запуск LooperThread, вызывающий функцию периодически.
Если timer_interval_secs равно None, поток вызывает target(args) повторно. В противном случае target(args) вызывается каждые timer_interval_secs секунды. Поток завершается, когда координатор запрашивает остановку.
| Аргументы | |
|---|---|
coord | Координатор. |
timer_interval_secs | Число. Границы времени, в которые нужно вызывать target. |
target | Вызываемый объект. |
args | Необязательные аргументы для передачи методу target при его вызове. |
kwargs | Необязательные ключевые аргументы для передачи методу target при его вызове. |
| Возвращаемое значение | |
|---|---|
| Запущенный поток. |
run
run()
Метод, представляющий активность потока.
Вы можете переопределить этот метод в подклассе. Стандартный метод run() вызывает вызываемый объект, переданный в конструктор объекта в качестве аргумента target, если таковой имеется, с последовательными и ключевыми аргументами, взятыми из аргументов args и kwargs соответственно.
run_loop
run_loop()
Вызывается в моменты времени, кратные 'timer_interval_secs'.
setDaemon
setDaemon(
daemonic
)
setName
setName(
name
)
start
start()
Запуск активности потока.
Его нужно вызывать не более одного раза на объект потока. Он обеспечивает вызов метода run() объекта в отдельном потоке управления.
Этот метод вызывает исключение RuntimeError, если его вызывают более одного раза на одном объекте потока.
start_loop
start_loop()
Вызывается при запуске потока.
stop_loop
stop_loop()
Вызывается при остановке потока.
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/train/LooperThread