python - 在while循环执行期间线程停止
问题描述
我有一个用python编写的线程类(TransmitThread),它需要很少的参数,然后开始传输到设备(NI USRP)。我有一个基于休息瓶的网络服务,它根据用户的休息请求创建一个新的 TransmitThread 对象并调用 start()。理想情况下,它应该开始传输并等待 self.thdRunning 的标志,我可以将其设为假。我发现我的实现有 2 个问题 1。我没有看到来自 Thread 类的打印 2。我将线程存储在字典中作为参考。当我收到后续的休息请求时,旧线程处于停止状态。
注意:我对 Python 不太熟悉,我正在努力学习,所以任何额外的输入也会有所帮助
有关如何保持线程运行和打印日志的任何输入都会有所帮助。
class TransmitThread(threading.Thread,grc_wxgui.top_block_gui):
// variables are initalised here
thdRunning = True
def __int__(self):
pass
def run(self):
##################################################
# Variables
##################################################
self.samp_rate = samp_rate = 32000
....do some more thing....
print("Transmission started! Will wait to be killed")
while self.thdRunning:
time.sleep(2)
print("Transmission thread stopped!")
def endThreadExecution(self):
self.thdRunning = False;
Flask 休息服务实现
@app.route('/txdata/<clienID>/<usrpIp>/<frequency>/<path:fname>',methods=['GET'])
def transmit(clienID,usrpIp,frequency,fname):
global dict
if(not isUsrptransmiting)|shallStartTxn:
if fname.endswith('.iq12'):
decIM = 12
else:
decIM = 48
usrpIp = "addr="+str(usrpIp)
print(usrpIp)
fname = "/"+fname
transmitThread = threading.Thread(target=TransmitThread,args=(fname, str(usrpIp), decIM, frequency))
transmitThread.daemon = True # Daemonize thread
print("Service is Transmitting " + str(clienID) + "this is your username " + str(usrpIp) + " freq " + str(frequency) + " file " + str(fname) +" decIM "+str(decIM))
transmitThread.start()
dict[str(usrpIp)] = transmitThread
print('Service is Transmitting '+ clienID+',this is your username '+usrpIp+ ' freq '+frequency+ ' file '+ fname)
response = {'clientId':clientID}
else:
response = {'clientId':"None"}
return jsonify(response),200
代码是@https ://github.com/sagar1805/usrp-server.git
解决方案
推荐阅读
- ruby-on-rails - Ruby on Ruby 记录具有相同 id 的冗余行
- c# - 如何使用 BinaryReader.ReadBytes(Int32) 读取负二进制数据
- c++ - 在 0 处显式启动 C/C++ 枚举的原因
- azure-devops - 自动向 Azure DevOps 中的所有拉取请求添加注释
- c++ - 逆时针方向旋转矩阵90度,我哪里错了
- reactjs - React Redux 获取连接组件中的当前路径
- python - 如何将 shap.DeepExplainer (SwigPyObject) 保存到文件中?
- c++ - 如何指示名称空间仅供库使用?
- php - MySQLi *IS* 存在且功能正常 - 但在 Eclipse 中不可用
- python-3.x - Python3 Pandas.DataFrame.info() 错误键:30