VeighNa量化社区
你的开源社区量化交易平台
Member
avatar
加入于:
帖子: 70
声望: 0
def run(self):
    """"""
    while self.active:
        try:
            task = self.queue.get(timeout=1)
            task_type, data = task

代码来源:vnpy/app/data_recorder/engine.py

我想请教下大佬这里关于的多线程的问题

1、在get一个task后,完成一个task后面的代码,才会取出queue中的下一个task
2、无论当前取走的task是否完成,都会在timeout=1后继续取task出来进行处理

想问下我哪个理解是正确的?或者有其他指点请赐教,感谢大佬!

Administrator
avatar
加入于:
帖子: 4495
声望: 315

1是对的

timeout是指从queue获取数据的阻塞时间,而不是每隔1秒才处理一次数据。

可以看下python官网的Queue模块说明

© 2015-2022 微信 18391752892
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】