Python: Zabití vlákna vytvořeného modulem threading

Jan Fuchs fuky na seif.cz
Středa Březen 24 22:59:16 CET 2004


Ahoj,
v aplikaci (GTK2) si pomocí modulu threading vytvořím dvě nová vlákna

  prvni_TH = threading.Thread(target = prvni_funkce)
  prvni_TH.start()

  druhe_TH = threading.Thread(target = druha_funkce)
  druhe_TH.start()

Chci uživateli dovolit, aby je obě mohl zabít stisknutím tlačítka.
Představoval jsem si něco jako

  prvni_TH.exit()
  druhe_TH.exit()

, ale v modulu threading jsem nic podobného nenašel. Kontrolovat ve
vláknech jestli je uživatel nechce náhodou zabít se mi nelíbí. Tak mě
napadlo následující řešení.

Ihned po spušnění prvního vlákna zjistím jeho PID

ps -C skript.py -o pid | tail -n 1

Ještě, ale musím vymyslet jak to provázat s Pythonem. Jedna z
možností, která mě právě napadá je uložení PID do souboru
 
os.system('ps -C skript.py -o pid | tail -n 1 > pid1')

A v případě potřeby pak mohu vlákno kdykoliv zabít

os.system('kill -9 $(cat pid1)')

To samé udělám i pro druhé vlákno.

Nenapadá náhodou někoho nějaké čistší řešení?

     S pozdravem Fuky

-- 

####################################################################
# Žádný program není bezchybný, dokonalý ani nejlepší, # Gnu.cz    #
# to samé platí i o lidech a nejen o nich.             # Linux.cz  #
#                                   -- Jan Fuchs --    # Debian.cz #
####################################################################
# http://www.asu.cas.cz                           ICQ: 200 692 177 #
####################################################################


Další informace o konferenci Linux