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

Python 我的线程编程有什么问题?,python,multithreading,python-multithreading,Python,Multithreading,Python Multithreading,我的线程编程存在一个效率问题,我试图模拟生产者-消费者模式 相位1的输出为相位2的输入 问题是,当我独立运行阶段1和阶段2时,就执行所需的时间而言,我得到了有效的结果 但当我运行线程方式时,执行所需的时间要长x1000倍 这是我的线程编程主要模块: #Phase1 is producer phase1_thread= Phase1Thread() phase1_thread.daemon=True phase1_thread.start() # Phase 2 is consumer pha

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

相位1的输出为相位2的输入

问题是,当我独立运行阶段1和阶段2时,就执行所需的时间而言,我得到了有效的结果

但当我运行线程方式时,执行所需的时间要长x1000倍

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

#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阶段(生产商):

这是第2阶段(消费者)


那么你的问题是:逻辑有什么问题?或者效率低下在哪里?对不起,我想问的是效率低下在哪里?
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())
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())