我有两个主题。
def collectorFunction():
# collectInformation
# add to List
list.append(myReceivedData)
def senderFunction):
time.sleep(60)
sendList.append(list[:])
del list[:]
# send information
t1 = Thread(target = collectorFunction)
t1.daemon = True
t1.start()
t2 = Thread(target = senderFunction)
t2.daemon = True
t2.start()
我想做的是在后台运行一个线程,不断通过UDP广播收集信息。我获取该信息,将其排队,并将其发送到另一个位置。基本上是监控设备。我认为通过JSON调用发送大量数据的网络密集程度较低。
目前我正在使用全局变量。但我不愿意使用它。我刚读过队列。我见过的大多数示例都会显示此示例中的collectorFunction,放入队列,并且senderFunction从队列中获取。
但我需要的是让collectorFunction无限期地放入队列,使用senderFunction从队列中获取所有内容,处理,然后等待60秒再重试。
我见过的一个例子显示:
def func2(num, q):
while num < 100000000:
num = q.get()
print num,
不太确定如何根据我的需要重写这个?
也许
def senderFunction(queue):
while 1:
while len(queue) > 0:
item = queue.get()
# do what I need with the items
time.sleep(60)
这有意义吗?有没有更好的方法呢?