python - 停止两个循环线程连续接收和发送数据

标签 python multithreading loops daemon

我在 python 中使用线程时遇到一些问题。 由于某些原因我必须创建 2 个线程。每个线程都在做几乎相同的事情: 接收数据并发送数据的循环。 我的问题是:我不知道如何停止这些线程。数据是连续发送的。 我尝试使用“KeyboardInterrupt”和“myThread.daemon”,但循环仍在控制台中运行。 因此,如果您知道阻止它们的解决方案(使用“CTRL+C”或“按键”),我将不胜感激。

这是我的代码的全局功能:

#=========#
#Thread 1 #
#=========#
class ThreadEmissionSerie1(threading.Thread):
        def __init__(self):
                threading.Thread.__init__(self)
        def run(self):

                variable = 0
                while 1:
                        try:
                                print "variable 1 : ", variable
                                variable += 2
                        except:
                                pass

#=========#
#Thread 2 #
#=========#
class ThreadEmissionSerie2(threading.Thread):
        def __init__(self):
                threading.Thread.__init__(self)
        def run(self):
                variable = 0
                while 1:
                        try:
                                print "variable 2 : ", variable
                                variable += 3
                        except:
                                pass


print "starting the threads"

th_E1 = ThreadEmissionSerie1()
th_E2 = ThreadEmissionSerie2()

th_E1.daemon = True
th_E2.daemon = True
th_E1.start()
th_E2.start()

我希望有人能帮助我:) 该程序应该在 Windows 和 Linux 上运行 谢谢, 亚瑟

最佳答案

我认为答案正如我所评论的:在 IDLE 下,“模块”以 IDLE 的 shell 作为主线程运行,因此守护线程不会死亡。

关于python - 停止两个循环线程连续接收和发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21328508/

相关文章:

php - 如何限制 PHP While 循环的输出?

arrays - 使用 loop 和 grep 处理子文件夹

python - 将参数化测试与 pytest 相匹配

python - python对象的查询语言

java - 使方法同步可以确保它是线程安全的吗?

java - 使用 JPA 线程保存实体(同步)

loops - 实现循环的快速方法

python - Tkinter - 切换到不同页面时如何重置网格行配置

Python:是否可以事先知道迭代器对象中有多少次迭代?

java - 创建 n 个线程,一次最多 5 个 Activity 线程,等待所有线程完成后再继续