Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我的应用程序是一个简单的消息发送者/接收者,通过 TCP/IP 和 GUI。到目前为止,一切都是一个线程,但我想将 TCP/IP 通信块和 GUI 拆分为单独的线程。如我所见,我需要一个共享数据结构(如 QQueue<QString>)来在 GUI 线程和 TCP/IP 线程之间来回传递消息。
问题是:我在哪里放置这个共享数据结构?如果我把它放在任何一个线程中,另一个线程如何访问它?O 使用 QSharedMemory 之类的东西会更好吗?
我会亲自创建一个全局单例自旋缓冲区,它是线程之间的共享资源。
让“馈送线程”(来自您的 TCP/IP 线程)将数据放在缓冲区上。让您的“读取线程”(从您的 GUI)从缓冲区中提取数据。
确保在“puts”和“gets”上都有正确的锁,以避免竞争条件和死锁。
约翰