我的线程编程有什么问题?

时间:2017-06-07 03:51:40

标签: python multithreading python-multithreading

我的线程编程存在效率问题,我尝试模拟生产者 - 消费者模式。

Phase1的输出是phase2的输入。

问题是当我独立运行阶段1和阶段2时,我在执行时间方面有效率。

但是当我运行线程时,执行时需要花费1000倍的时间。

这是我用于线程编程的主要模块:

#Phase1 is producer
phase1_thread= Phase1Thread()

phase1_thread.daemon=True
phase1_thread.start()

# Phase 2 is consumer
phase2_thread = Phase2Thread()
phase2_thread.daemon=True
phase2_thread.start()

import time
while True:
    time.sleep(1)

这是第1阶段(制作人):

global queue
self.Phase1= phase1()

input= ....
for i, batch in input.groupby(np.arange(len(input)) //1000):
    #print(i)
    tuple_of= self.Phase1.extract(batch,i)
    output=tuple_of[0]
    queue.put(output)
    time.sleep(random.random())

这是阶段2(消费者)

self.Phase2 = phase2.EntityResolver()
global queue
global stream_count
global thread_processed
counter=0
while True:
    tuple_of = queue.get()
    input=tuple_of[0]
    queue.task_done()
    self.Phase2.run(input)
    counter=counter+1
    time.sleep(random.random())

0 个答案:

没有答案