在您阅读上,要知道我是新来的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