在您閱讀上,要知道我是新來的Python和非常新的線程,因此原諒我,如果我誤會線程如何工作或做一個菜鳥錯誤:PPython的線程 - 管理線程終止與主線程
我的目標簡短說明:
- 主線程(一)確實有些東西(如打印!「開始」)
- 主線程產生一個新的線程(b)在第一次印「線程b 開始「然後永遠打印x + 1(1,2,3 ...)
- 主線打印「Woop!」
- 然後在達到主線程結束,則終止本身和 然後切換到線程B使B中的主線程
- 方案現在正在運行的線程B作爲主線程所以僅僅是 印刷X + 1永遠和一個已經被人遺忘,不再 相關
- 按Ctrl + C將終止線程b,有效,整個程序 將被終止,因爲線程不存在了
這裏就是我有這麼(基本):
import threading, time
def printCount():
print "Thread B started"
x = 0
while True:
time.sleep(1)
x = x + 1
print x
## User Code ##
print "begin!"
threadB = threading.Thread(target=printCount)
threadB.start()
print "woop!"
的要求是:
- 我不想太多的所有修改「用戶守則」關口下方。我 當然不希望它包裝在一個類,函數或它自己的 螺紋
- 按Ctrl + C在任何時候應該終止整個程序 沒有線程保持運行(使用類似:
except
內用戶代碼是罰款
KeyboardInterrupt: os._exit(1)) - 一個線程可以繼續運行,而不是讓線程b的主要 線程,但在這種情況下,我不想代碼來處理按Ctrl + C 終止用戶代碼中的整個程序部分
This例子不是我的實際目標,只是我遇到的問題的簡化版本。我正在嘗試構建一個IRC框架,用戶可以在其中導入它並非常簡單地使用API,而無需使用線程和中斷等來混淆他們自己的代碼。這就是爲什麼使用戶代碼儘可能乾淨至關重要。
該框架將允許用戶創建一個永久運行的IRC bot,監聽命令,同時允許用戶添加自己的命令。如果你感興趣的話,Github鏈接是here(這是非常WIP atm)。
我想包含printCount繼續永遠運行線程,但這間esting! – Jazcash
@Jazcash哦,我的壞,我以爲我讀到你想要的線程不會永遠運行:) – Torxed