我正在开发一个实时数据采集器。我有一个 while True 循环,在其中,我生成了执行相对较小任务的线程(我正在通过 HTTP 查询第 3 方 API,为了实现快速并行查询)。
每个线程都负责更新特定的数据系列。这可能需要 2、3 甚至 5 秒。但是,我的 while True 循环产生线程的速度可能比线程完成所需的时间要快。因此,我需要生成的线程等待它们之前的线程完成。
一般来说,由于线程查询 HTTP 服务器,线程完成需要多长时间是不可预测的......
我正在考虑为每个线程创建一个命名信号量,然后如果为特定系列生成的线程发现以前的线程在同一系列上工作,它将等待。
我能看到的唯一问题是线程可能积压..
这里最好的解决方案是什么?我应该研究像芹菜这样的东西吗?我目前正在使用线程模块。
谢谢!