如何在数据线程之间传递数据?

时间:2017-04-25 00:22:02

标签: python python-multithreading

我在Python中有三个共享ASCII数据的线程。第一个线程以极快的速率从串行端口读取串行数据。然后,我解析并将该数据传递给它写入的套接字。此外,串行数据中的一些数据被写入XML文件。我知道全局解释器锁及其局限性。我需要在1/10秒内完成所有这些操作。通过利用我在线程之间共享的全局值,我看到了大量的CPU使用和延迟。我不认为我可以在Python中使用事件,就像其他人一样。

如何在没有Python中的延迟和CPU使用情况的情况下在同步事务中在这些线程之间共享数据?

1 个答案:

答案 0 :(得分:3)

我认为实现这个的最好方法是使用python Queue模块: https://docs.python.org/2/library/queue.html

队列基本上是列表,但它们是线程安全的,并且'get'函数有效地阻塞线程,直到某些数据加入其中。它应该对CPU更有效。