我正在python中使用scapy實現一個多線程網絡掃描器。我想退出keyboardInterrupt上的所有線程。我設法完成了以下代碼,但並不是所有線程都在引發的異常中退出。我有以下代碼處理線程並捕獲異常。 謝謝在python的keyboardInterrupt退出線程
0
A
回答
1
這只是一個小記。 通常情況下,KeyboardInterrupt
將提高在主線程,從而使你做線沿線的東西:
import threading
main = None
for t in threading.enumerate():
if t.name == 'MainThread':
main = t
while main.isAlive():
...
每當主線程死亡這將打破循環。 您也可以枚舉主循環中的線程數並殺死主進程,並使用此主線程檢查有效地終止所有線程。
或者你可能有一個錯誤標誌,所有線程都可以聽到。 一旦發生異常,錯誤標誌會向所有其他線程指出發生了錯誤,現在是時候關閉了。
+0
感謝你的提示,我也在我的代碼中實現了錯誤標記方法。最後,我調試它,現在工作正常。 –
+0
@devilfox很高興聽到,我貼的代碼顯然會進入你的子線程:) – Torxed
相關問題
- 1. Python中KeyboardInterrupt在多線程
- 2. KeyboardInterrupt不能在多線程python
- 3. python線程立即退出
- 4. Python,線程永不退出
- 5. Python線程退出代碼
- 6. 線程不退出python
- 7. Python 2.7:子線程不捕捉KeyboardInterrupt
- 8. Python - 無法用KeyboardInterrupt殺死主線程
- 9. 在python中退出一個線程?
- 10. python中的特定線程退出
- 11. 當父線程退出時,Python守護進程線程不會退出
- 12. 線程忽略KeyboardInterrupt異常
- 13. 主線程不捕捉KeyboardInterrupt
- 14. python退出無限while循環與KeyboardInterrupt異常
- 15. 父線程在子線程之前退出[python]
- 16. 在python多線程服務器中退出線程
- 17. Python線程捕捉異常並退出
- 18. 線程完成時退出的多線程Python服務器
- 19. 按Ctrl-C,即一個KeyboardInterrupt殺死線程在python
- 20. pthread退出線程池中的線程
- 21. Python線程在Python中按ctrl-c退出
- 22. 當主線程退出時,如何讓子線程退出?
- 23. 退出c中的線程
- 24. 在while循環中生成圖形後在KeyboardInterrupt上退出
- 25. 退出Python程序
- 26. 以編程方式在多線程中退出python腳本
- 27. 當在Python中引發KeyboardInterrupt?
- 28. 的Python:子進程退出留下它的線程運行
- 29. POSIX線程和退出線程
- 30. 如何退出主線程在Python,使子線程繼續在後臺
你真的認爲有人會讀你的代碼牆? – michaelmeyer
這真的沒關係,如果你明白我在我的問題中提到的那些東西...... –