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()
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ónfeed_data()
, puedes reemplazarlogging.info(f'{threading.Thread.name}')
conlogging.info(f'{threading.current_thread().name}')
para obtener el nombre del hilo que está ejecutando actualmente.