python线程isalive_如何在线程类上使用.isAlive()
我有Gui,有独立的线程,但我需要一个线程成为一个按钮,我的问题是,当我按下按钮,它创建了一个无限循环,不断产生新的线程。在
因此,我需要检查线程.isAlive()是否通过,如果通过,则启动线程:if ThreadedTask.isAlive() == True:
pass
else:
self.queue = Queue.Queue()
ThreadedTask(self.queue).start()
但当我这样做时,我得到了以下错误:
^{pr2}$
有人能告诉我是什么引起的吗?为了完整起见,我在下面添加了完整的类和按钮函数:class ThreadedTask(Thread):
def __init__(self, queue):
Thread.__init__(self)
self.daemon = True
self.queue = queue
def run(self):
proc = Popen("receivetest -f=/dev/pcan33".split(), stdout = PIPE)
if terminated == 1:
proc.kill()
payload = iter(proc.stdout.readline, "")
for line in payload:
if line[0].isdigit():
splitline = line.split()
self.dictAdd(splitline)
def dictAdd(self, info):
global mydict
can_ID = info[4]
p = PCANmsg()
p.dlc = int(info[5])
p.CANtime = float(info[0])
p.hdata0 = info[6]
p.hdata1 = info[7]
p.hdata2 = info[8]
p.hdata3 = info[9]
p.hdata4 = info[10]
p.hdata5 = info[11]
p.hdata6 = info[12]
p.hdata7 = info[13]
p.timing = 1
if can_ID in mydict.keys():
q = mydict[can_ID]
p.COUNT = q.COUNT + 1
p.PCANperiod = p.CANtime - q.CANtime
else:
p.COUNT = 1
p.PCANperiod = 0.0
mydict[can_ID] = p
s = '%06X : %3d %02X %02X %02X %02X %02X %02X %02X %02X\t %8.2F %8d ' %\
(int(can_ID,16),
p.dlc,
int(p.hdata0, 16),
int(p.hdata1, 16),
int(p.hdata2, 16),
int(p.hdata3, 16),
int(p.hdata4, 16),
int(p.hdata5, 16),
int(p.hdata6, 16),
int(p.hdata7, 16),
p.PCANperiod,
p.COUNT)
self.queue.put(s)
按钮功能:def RecvBtn_Click(self):
if ThreadedTask.isAlive() == True:
pass
else:
self.queue = Queue.Queue()
ThreadedTask(self.queue).start()
try:
info = self.queue.get(0)
info_split = info.split()
if self.RecvList.size() < len(mydict):
for _i in mydict.keys():
self.RecvList.insert("end",'%06X : %3d %02X %02X %02X %02X %02X %02X %02X %02X\t %8.2F %8d ' %\
(int(_i,16),
mydict[_i].dlc,
int(mydict[_i].hdata0, 16),
int(mydict[_i].hdata1, 16),
int(mydict[_i].hdata2, 16),
int(mydict[_i].hdata3, 16),
int(mydict[_i].hdata4, 16),
int(mydict[_i].hdata5, 16),
int(mydict[_i].hdata6, 16),
int(mydict[_i].hdata7, 16),
mydict[_i].PCANperiod,
mydict[_i].COUNT))
else:
for i, listbox_entry in enumerate(self.RecvList.get(0, "end")):
list_split = listbox_entry.split()
if list_split[0] == info_split[0]:
self.RecvList.delete(i)
self.RecvList.insert(i, info)
else:
continue
# self.RecvList.insert("end", info)
self.window.after(20, self.RecvBtn_Click)
except Queue.Empty:
self.window.after(100, self.RecvBtn_Click)
python线程isalive_如何在线程类上使用.isAlive()相关推荐
- python 在主线程开线程_Python开启线程,在函数中开线程的实例
逻辑处理上分成了多个模块,为了提高效率,前一个模块处理完调用后一个模块操作时使用多线程 我这里遇到的情形是前面取数据后面存到mysql,发现单线程效率很低,改为取数据后开线程存到mysql 开启线程之 ...
- python关闭线程根据id_python之线程相关操作
1.线程: 一个进程可以有多个线程,共享一个进程的资源: 2.进程线程的区别: 进程是资源分配的最小单位,线程是程序执行的最小单位 3.python中线程模块threading, 提供的类: Thre ...
- Python模块整理(四):线程模块threading
参考网络以及python书籍整理 一.Python threading三种调用方式介绍: Thread 是threading模块中最重要的类之一,可以使用它来创建线程. 第一种方式:创建一个threa ...
- python 子线程返回值_python-从线程返回值
python-从线程返回值 我如何获得一个线程以将元组或我选择的任何值返回给Python中的父级? 12个解决方案 59 votes 我建议您在启动线程之前实例化Queue.Queue,并将其作为线程 ...
- Python | 面试必问,线程与进程的区别,Python中如何创建多线程?
其实关于元类还有很多种用法,比如说如何在元类当中设置参数啦,以及一些规约的用法等等.只不过这些用法比较小众,使用频率非常低,所以我们 不过多阐述 了,可以在用到的时候再去详细了解.我想只要大家理解了元 ...
- python多线程,多进程,线程池,进程池
https://blog.csdn.net/somezz/article/details/80963760 python 多线程 线程(Thread)也叫轻量级进程,是操作系统能够进行运算调度的最小单 ...
- Python基础第二十天:线程
操作系统线程理论 线程概念的引入背景 进程和线程的关系 线程的特点 使用线程的实际场景 用户级线程和内核级线程(了解) 线程和Python 理论知识 线程的创建Threading.Thread类 锁 ...
- Python的并发并行[1] - 线程[3] - 多线程的同步控制
多线程的控制方式 目录 唤醒单个线程等待 唤醒多个线程等待 条件函数等待 事件触发标志 函数延迟启动 设置线程障碍 1 唤醒单个线程等待 Condition类相当于一把高级的锁,可以进行一些复杂的线程 ...
- Python基础:进程、线程、协程(2)
进程与线程 什么是进程(process)? An executing instance of a program is called a process. Each process provides ...
最新文章
- 如何在到处是“雷”的系统中「明哲保身」?这是第一招
- Python 【第十三章】 Django 之 FORM
- 树莓派教程之树莓派系统镜像刷入和远程登陆(1)
- 关于ASP.Net的导入导出的[转]
- Vs2010删除空白行
- 这哥们到底是应聘的还是来收购公司的?| 今日趣图
- php 可编辑菜单,菜单的添加编辑
- 快捷键截屏_win7截图快捷键是什么 win7截图快捷键怎么按
- 【 数据结构(C语言)】线性表——链表反转
- (转) windows 下ORA-12514:TNS 监听问题
- python一切皆对象的理解
- 知道对方IP,你该这样入侵(附:如何隐藏IP地址)
- 香橙派 OrangPi PC 安装Lakka游戏系统及使用指南
- 安利一个自动求导网站
- 机器学习案例丨基于广泛和深入的推荐 - 餐厅评级预测
- Ubuntu鼠标延迟,闪烁,消失
- ICO 项目被一刀切后,是时候深入探索区块链技术的应用了
- minio安装部署及使用
- 网络安全需要掌握的知识有哪些?
- 鲲鹏服务器主板销售策略,市场伙伴优先:以行践言,华为鲲鹏做到了