tf.compat.v1.train.LooperThread
Поток, который многократно выполняет код, при необходимости по таймеру.
tf.compat.v1.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 | Строка, используемая только для идентификации. Она не имеет семантического значения. Нескольким потокам можно присвоить одно и то же имя. Начальное имя задаётся конструктором. |
native_id | Нативный целочисленный идентификатор этого потока или None, если он ещё не был запущен. Это неотрицательное целое число. См. функцию get_native_id(). Это идентификатор потока, сообщаемый ядром. |
Методы
getName
getName()
isDaemon
isDaemon()
is_alive
is_alive()
Возвращает значение, указывающее, активен ли поток.
Этот метод возвращает True непосредственно перед началом выполнения метода run() и до момента сразу после его завершения. См. также функцию модуля enumerate().
join
join(
timeout=None
)
Ожидает завершения потока.
Этот метод блокирует вызывающий поток до завершения потока, для которого вызван метод join(), — штатно, из-за необработанного исключения или до истечения необязательного времени ожидания.
Если аргумент timeout указан и не равен None, он должен быть числом с плавающей точкой, задающим время ожидания операции в секундах (или долях секунды). Поскольку join() всегда возвращает None, после вызова join() необходимо вызвать is_alive(), чтобы определить, истекло ли время ожидания: если поток всё ещё активен, вызов 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()
Вызывается при остановке потока.
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/compat/v1/train/LooperThread