此问题与 Python多处理有关。我要求为我的特定场景提供合适的进程间通信数据结构:
我有一个制作人和一个消费者。
python.multiprocess.queue
上。 python.multiprocess.queue
的GUI轮询。消费者捕获生产者生产的每一个DataFrame都是非常关键的。 python.multiprocess.queue
正在服务于此目的(我认为),而且使用起来非常简单! (赞美绿色的slhehereen领主!)。但是 我显然没有利用队列的全部潜力,只有一个生产者一个消费者,最多一个项目在队列上。这让我相信有比队列更简单的事情 。我试图搜索它,我被python 3.5 documentation: 18. Interprocess Communication and Networking
中列出的选项所震撼。我也怀疑可能有一种方法根本不需要进程间通信数据结构。
请注意
我应该满足于队列吗?还是有更推荐的方式?我不是一个专业的程序员,所以我坚持用经过试验和测试的方式做事。 我也欢迎任何有关解决我问题的替代方法的建议。
由于
答案 0 :(得分:3)
对我来说,你提到的最重要的是:
消费者捕获生产者生产的每一个DataFrame都非常关键。
因此,假设您使用变量来存储DataFrame。生产者将其设置为生产值,消费者只需阅读它。我想这会很好。
但是,如果不知何故消费者被一个以上的生产周期所阻碍,会发生什么?然后在阅读之前会覆盖一些旧值。这就是为什么我认为(线程安全的)队列几乎是“按照定义”的方式。
此外,要注意过早优化。如果它适用于您的情况,非常好。如果有一天,对于其他一些情况,性能成为一个问题,那么你应该花费额外的工作,IMO。