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