我怎样才能从队列中弹出,处理它,推送到另一个队列,并且它是线程安全的?
How can I pop from a queue, process it, push to another queue, and it's thread-safe?
这是一个 C++ 程序。有2个子线程和2个queue.What我想做的是,
- 在主线程中将内容推送到队列 1。
- 子线程1从队列1中pop处理,然后推入队列2
- 子线程2从队列2中弹出并处理,然后输出答案。
如何让它成为线程安全的?我想了两个办法,
- 使用线程安全队列。但这是否意味着我不应该使用STL的队列?
- 写线程锁。但是我怎样才能在一个线程中写 2 个锁并锁定不同的部分呢?
这真的让我很困惑。需要帮忙!!!!任何建议将不胜感激!
你已经说过了。使用互斥锁锁定对每个队列的读写访问。队列 1 和 2 获得互斥体。如果您为队列编写自己的推送和弹出函数,那将很容易。在此函数中,您可以使用标准队列或其他。
这是一个 C++ 程序。有2个子线程和2个queue.What我想做的是,
- 在主线程中将内容推送到队列 1。
- 子线程1从队列1中pop处理,然后推入队列2
- 子线程2从队列2中弹出并处理,然后输出答案。
如何让它成为线程安全的?我想了两个办法,
- 使用线程安全队列。但这是否意味着我不应该使用STL的队列?
- 写线程锁。但是我怎样才能在一个线程中写 2 个锁并锁定不同的部分呢? 这真的让我很困惑。需要帮忙!!!!任何建议将不胜感激!
你已经说过了。使用互斥锁锁定对每个队列的读写访问。队列 1 和 2 获得互斥体。如果您为队列编写自己的推送和弹出函数,那将很容易。在此函数中,您可以使用标准队列或其他。