es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo conocer el nombre del hilo dentro de él.

He creado múltiples hilos utilizando el bucle “for” y necesito leer el nombre del hilo dentro del hilo. ¿Cómo puedo hacer eso? Usé “threading.Thread.name” pero devuelve una dirección de memoria del objeto del hilo. Aquí está parte de mi código:

def catch_sharp_fall(update, context, x):
global access_token, watchlist, bot, chat_id, market_open_alert, nifty, bot_reset, stop_catch_sharp_fall, \
kite_api_key
ins_code = x
kite = KiteConnect(kite_api_key)
kite.set_access_token(access_token)
kws = KiteTicker(kite_api_key, access_token)

def on_ticks(ws, ticks):
    logging.debug("Ticks: {}".format(ticks))

def on_connect(ws, response):
    ws.subscribe([ins_code])
    ws.set_mode(ws.MODE_FULL, [ins_code])

def on_close(ws, code, reason):
    ws.stop()

kws.on_ticks = on_ticks
kws.on_connect = on_connect
kws.on_close = on_close
kws.connect(threaded=True)

while True:
    def on_ticks(ws, ticks):
        feed_data(ticks)

    def feed_data(ticks):
        lista_de_hilos_en_ejecucion = [i.name for i in threading.enumerate()]
        logging.info(f'lista de hilos en ejecución {lista_de_hilos_en_ejecucion}')
        # update.message.reply_text(f'<b>Soy la acción {ins_code}</b>', parse_mode='HTML')
        logging.info(f'{threading.Thread.name}')

    kws.on_ticks = on_ticks

for x in watchlist:
t = threading.Thread(name=str(x), target=catch_sharp_fall, args=(update, context, x))
t.setDaemon(True)
t.start()

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para leer el nombre del hilo dentro del hilo mismo, puedes usar el método threading.current_thread(), el cual devuelve el objeto del hilo actual. Luego, puedes usar .name para obtener el nombre del hilo. Entonces, en tu función feed_data(), puedes reemplazar logging.info(f'{threading.Thread.name}') con logging.info(f'{threading.current_thread().name}') para obtener el nombre del hilo que está ejecutando actualmente.

Comments are closed.