问题描述
if math.fabs(time.time()-start_time) > time_interval :
TypeError:“ float”和“ Synchronized”实例之间不支持“>”
代码:
if __name__ == "__main__":
start_time = multiprocessing.Value( 'd',0.0)
time_t = multiprocessing.Value('d',0.005)
producer(all_client,q[0],time_t,start_time,t)
...
def producer(sequence,output_q,time_interval,t):
start_time = t = time.time()
for item in sequence:
time.sleep(random.expovariate(glamda[0]))
item.time_arrived = item.V_entered[0]= time.time()
output_q.put(item)
if math.fabs(time.time()-start_time) > time_interval :
print("producer time out ",time_t)
break
解决方法
我不确定您想要得到什么。但是您可以通过仅从Synchronized对象中获取值来解决此错误(它不是float,可以从此对象中提取值)。
替换:if math.fabs(time.time()-start_time) > time_interval
至:if math.fabs(time.time()-start_time) > time_interval.value