从使用线程和队列模块的Python脚本中识别队列返回

2024-09-29 23:19:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个补充问题,我刚才问了一个问题,如果有必要,你可以参考这个问题:

Long term instrument data acquisition with Python - Using "While" loops and threaded processes

我看了一大堆问题和其他阅读资料,得出了一个很好用的代码块,尽管它非常简陋:

import ue9
import LJ_Util
import DAQ_Util
import threading
import Queue

queue = Queue.Queue()

def ljThread(ue9ipAddr):
    print '\nExecuting in ljThread...'
    a = ue9.UE9(ethernet=True, ipAddress=ue9ipAddr)
    reading = a.feedback()
    queue.put(reading)

print "Opening device...\n",
# Opens a UE9 at IP Address 192.168.1.127
ipAdd = '192.168.1.127'
feedbackThread = threading.Thread(target=ljThread, args=(ipAdd,))
feedbackThread.start()

outcome = queue.get()
print outcome
print "\nDone"

我的问题是,我想使用单独的线程来访问对象ue9.ue9的不同实例中的信息,该对象绑定到数据采集单元。我预计每个单元将返回不同的数据,但我需要将正确的数据与正确的单元相关联。有人能告诉我正确的方法来通过队列对象来跟踪源代码吗?队列对象用于将数据传递回调用线程?在

各位,提前谢谢你们的帮助!在


Tags: 数据对象importqueueutil单元printthreading
1条回答
网友
1楼 · 发布于 2024-09-29 23:19:50

修改ljThread函数以返回标识信息(例如它正在检查的IP地址)以及它读取的数据,应该非常容易。只需将最后一行替换为:

queue.put((ue9ipAddr, reading))

然后,当您从队列中获取结果时,请执行以下操作:

^{pr2}$

然后你可以使用IP来做任何你需要做的事情。在

相关问题 更多 >

    热门问题