Python中文
首页
教程
问答
标签
搜索
登录
注册
(Python)用原始输入停止线程?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p><strong>编辑9/15/16:</strong>在我最初的代码中(仍然张贴在下面),我试图将<code>.join()</code>与函数一起使用,这是一个愚蠢的错误,因为它只能用于thread对象。我正在努力 (1) 连续运行获取数据并将其保存到文件中的线程 (2) 有第二个线程或合并队列,一旦用户输入一个标志(即“停止”),它将停止程序。它不会中断数据收集/保存线程。在</p> <p>我需要多线程的帮助。我尝试运行两个线程,一个处理数据,另一个检查是否有标志来停止程序。在</p> <p>我通过反复试验了解到,如果计算机没有爆炸,我就不能中断while循环。另外,我已经放弃了GUI代码,因为它使我的代码在mulithreading中过于复杂。在</p> <p>我要做的是运行一个线程,从Arduino收集数据,将其保存到一个文件中,然后重复这个过程。第二个线程将扫描一个<strong>标志</strong>——它可以是一个原始的输入?我想不出用户还能做什么来停止数据采集程序。在</p> <p>我非常感谢在这方面的任何帮助。以下是我的代码(如您所见,大部分是伪代码):</p> <pre><code>#threading import thread import time global flag def monitorData(): print "running!" time.sleep(5) def stopdata(flag ): flag = raw_input("enter stop: ") if flag == "stop": monitorData.join() flag = "start" thread.start_new_thread( monitorData,()) thread.start_new_thread( stopdata,(flag,)) </code></pre> <p>当我尝试在空闲状态下输入“stop”时,我得到的错误是这个。在</p> <p><em>由启动的线程中出现未处理的异常 回溯(最近一次呼叫): stopdata中第16行的文件“c:\users\otangu~1\appdata\local\temp\IDLE\u rtmp_h_frd5” AttributeError:“function”对象没有属性“join”</em></p> <p>再一次,我真的很感谢你的帮助,到目前为止我已经自学了Python,这是我遇到的第一堵巨大的墙。在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>这是不可能的。线程函数必须完成。你不能从外面加入。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
pyVISA GPIB GET(组执行触发器)
9 回答
Pyvisa IOerror设备:Korad K3005d电源
7 回答
PyVISA mac OS X(山狮)安捷伦33250
6 回答
Pyvisa Pyusb无法加载大于1 MB的序列
6 回答
pyVisa RS232太慢
9 回答
PyVISA RS232超时错误(安捷伦电源)
10 回答
PyVISA SCPI命令和查询(值更新问题)
3 回答
PyVISA SerialInstrument需要硬重置才能在故障后连接
5 回答
pyvisa,未找到函数viOpen
3 回答
pyVISA:以编程方式将仪器返回到本地模式
9 回答
pyvisa:接口类型是什么意思?
7 回答
pyvisa.errors.VisaIOError:VI_ERROR_TMO(1073807339):操作完成前超时
2 回答
PyVisa“更复杂的示例”根本不运行Keithley 2400不理解的命令
7 回答
PyVisapy后端
7 回答
PyVISA不能写入超过7F的十六进制字符
4 回答
PYVISA中的ENUM模块和cStringIO模块
4 回答
PyVisa代码的图形用户界面
5 回答
Pyvisa使用按键电源超时
7 回答
PyVISA和Kethley 2701只能从一个通道获取结果
5 回答
PyVisa和Printing New D
7 回答