![](/img/trans.png)
[英]Running several python scripts in endless loops and in parallel (with PowerShell)
[英]Running two endless parallel loops
我想运行两个无尽的并行循环。 一种是从服务器读取数据并用数字更新对象。 另一个是什么也不做,然后读取它,如果有更改,则对其进行处理。 不必保持同步。 所以我的问题是:
任何帮助表示赞赏。
简短的答案是,您认为可以理解的任何内容。 意思是,出于学习目的,您的代码应该对您有意义。
这是一个例子,它轻巧易用。 从线程获取值和向线程获取值很容易。这不是实际的多线程(同一CPU内核)
from threading import *
class worker(Thread):
def __init__(self, input=0):
self.input = input
Thread.__init__(self)
self.start()
def run(self):
while 1:
self.input += 1
x = worker(-100)
y = worker(x.input)
print y.input
这只是一个示例,说明Y
线程可以访问x
的数据。实际上,考虑到两个线程都将更新同一变量,这可能很危险:)(简而言之:-100将在每个循环中两次被计算, -98,-96,-94 ..等)
from threading import Thread
from Queue import Queue
class producer(Thread):
def __init__(self,queue):
Thread.__init__(self)
self.queue=queue
self.start()
def run(self):
while 1:
self.queue.put(update_value())
class consumer(Thread):
def __init__(self,queue):
Thread.__init__(self)
self.queue=queue
self.start()
def run(self):
while True:
value = queue.get()
do_whatever_you_want(value)
queue = Queue()
producer(queue)
consumer(queue)
请注意,您可以通过使用100个生产者和一个消费者(当然还有一个队列)进行扩展,应该可以使用100个线程,但是如果您想使用10000,则情况会有所不同
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.