让两个过程function1,function2同时运行。 function1 //连续追加列表 function2 //从function1中获取列表,并从列表中获取所有数据,然后将其复制到另一个列表,刷新原始列表并处理复制的列表。
sample code:
list_p =[]
def function1(data):
list_p.append(data)
def function2(list_p):
list_q = list_p.copy()
list_p.flush()
x= process(list_q)
return x
while True:
//coming data continously
function1(coming data)
因此,如何一次使用function1和function2,以便我可以从function1获取数据并对其进行刷新(刷新后,开始从0开始将function1中的索引追加),同时,可以追加list在function1中。
同时,在完成function2的处理后,function1可能会追加列表,而function 2可能会处理新列表,它再次获取在function2处理期间要追加的原始列表中的所有数据。
继续..
答案 0 :(得分:1)
以下是使用Threading
的示例。我在生产者中使用了input
函数来代替数据流。 (它基于https://techmonger.github.io/55/producer-consumer-python/。)
from threading import Thread
from queue import Queue
q = Queue()
final_results = []
def producer():
while True:
i = int(input('Give me some number: ')) # here you should get data from data stream
q.put(i)
def consumer():
while True:
number = q.get()
result = number**2
final_results.append(result)
print(final_results)
q.task_done()
t = Thread(target=consumer)
t.daemon = True
t.start()
producer()