Bir iş parçacığı içinde başka bir yerde yakalanmadan bir istisna kaldırıldığında, tüm uygulama/tercüman/süreci mi öldürecek? Yoksa sadece ipi mi öldürecek?Bir iş parçacığı yakalanmamış özel durum, yalnızca iş parçacığı veya tüm işlemi mi öldürüyor?
cevap
Şunu deneyelim:
import threading
import time
class ThreadWorker(threading.Thread):
def run(self):
print "Statement from a thread!"
raise Dead
class Main:
def __init__(self):
print "initializing the thread"
t = ThreadWorker()
t.start()
time.sleep(2)
print "Did it work?"
class Dead(Exception): pass
Main()
Yukarıdaki kod aşağıdaki sonuçları verir
:
> initializing the thread > Statement from a thread! > Exception in thread > Thread-1: Traceback (most recent call last): File > "C:\Python27\lib\threading.py", line 551, in __bootstrap_inner > self.run() File ".\pythreading.py", line 8, in run > raise Dead Dead > ----- here the interpreter sleeps for 2 seconds ----- > Did it work?
Yani, sorunun cevabı yükseltilmiş İstisna sadece iplik çöküyor olduğunu tüm programda değil. threading belgelerine
Eşzamanlı iş parçacığı havuzu kullanıyorum. Bir iş parçacığı öldürülürse yeni bir iş parçacığı iş parçacığı havuzunda doğurur veya değil ??? –
: parçacığının aktivite başladıktan sonra
, iplik ‘canlı’ olarak kabul edilir. Run() yöntemi sonlandırıldığında ( ) normal olarak ya da işlenmemiş bir istisnayı yükselterek canlı kalmayı durdurur. Is_alive() yöntemi, iş parçacığının canlı olup olmadığını sınar.
Ve ayrıca:
iplik sonlandırır kadar(zaman aşımı = Hiçbiri)
Bekle katılmak. Bu, join() yöntemi çağrılan iş parçacığı sonlandırılana kadar (veya normalde veya işlenmeyen bir istisna) çağrılan iş parçacığını engeller veya isteğe bağlı zaman aşımı gerçekleşene kadar engeller. Başka bir deyişle
, yakalanmamış istisna bir iş parçacığı sona erdirmek için bir yoldur ve iplik sözü üzerine ebeveynin join
çağrısında algılanır.
- 1. Bir iş parçacığı veya iş parçacığı için bir DAO DAO?
- 2. Bir daemon iş parçacığı yalnızca
- 3. iş parçacığı içinde yerel depolama iş parçacığı
- 4. İş parçacığı tanıtıcısı iş parçacığı tanıtıcısı
- 5. iş parçacığı
- 6. Windows iş parçacığı havuzu ve CLR iş parçacığı havuzu
- 7. ACAccount iş parçacığı güvenli mi?
- 8. HttpContext.Current.Cache iş parçacığı güvenli mi?
- 9. java.lang.reflect.Method iş parçacığı güvenli mi?
- 10. RNGCryptoServiceProvider.GetBytes iş parçacığı güvenli mi?
- 11. Bir "gerçek" iş parçacığı
- 12. Qt: Arka plan iş parçacığı yenileme UI iş parçacığı
- 13. Ayrı iş parçacığı
- 14. İş parçacığı .net 4
- 15. İş parçacığı yürütme sırasında nesne durum değişikliği
- 16. Bir iş parçacığı iptal ettiniz mi?
- 17. gdb - iş parçacığı günlüğü
- 18. WPF iş parçacığı C#
- 19. Arka plan iş parçacığı
- 20. UEFI'da bir iş parçacığı oluşturma
- 21. Kinect ile iş parçacığı
- 22. İşleyici vs İş parçacığı
- 23. Ana iş parçacığı
- 24. NSMutableDictionary iş parçacığı güvenliği
- 25. Bu html yardımcı iş parçacığı güvenli mi?
- 26. Ayrı iş parçacığı içinde
- 27. Django/sqlite3 "OperationalError: iş parçacığı yok" iş parçacığı üzerinde
- 28. notifyAll iş parçacığı uyanıyor.
- 29. Maksimum iş parçacığı sorunu
- 30. CountdownTimer UI iş parçacığı güncelleştiren çalışan iş parçacığı içinde
Bir özel durum oluşturan bir iş parçacığı oluşturmayı denediniz mi? – mbatchkarov