【发布时间】:2020-07-02 09:18:52
【问题描述】:
我有一个多线程应用程序,每个线程都从一个串行/UART 接口接收数据。
我想在数据到达时按顺序打印数据,但是有些数据较长,有些较短,使用 pyserial 的 read_until 会导致顺序混淆(几毫秒/纳秒)
我需要像队列这样的东西,但它可以按顺序删除元素以确保我不会混淆它们。
接收线程
- 收到数据包的第一个字节后,我可以“获取下一个数字”(一些线程安全操作)
- 那我可以等到所有数据都到了
- 然后我可以将整个“数据包”推入队列
消费者线程只能根据顺序索引消费队列中的元素,例如。 1 和 2 已处理,已经有 4 和 5 等待,但我从来没有得到 3 我必须等待它才能继续。
我不想重新发明轮子 - 这是一个我无法命名的结构还是有人知道类似的东西?
【问题讨论】:
标签: python python-3.x multithreading queue