我知道并发添加到 C++ 中的 stl 队列会导致问题,解决此问题的方法是在所有添加/删除调用周围添加互斥锁。
但我目前正在使用 Java 编程,并且正在使用 BlockingQueue。该文档仅说调用 BlockingQueue 对象上的 put/take 的线程被隐式阻塞,直到有空间可以放置/有一些东西可以分别使用。但是,它没有提到任何有关并发 put/take 调用的内容。我需要用互斥锁保护这些吗?
我知道并发添加到 C++ 中的 stl 队列会导致问题,解决此问题的方法是在所有添加/删除调用周围添加互斥锁。
但我目前正在使用 Java 编程,并且正在使用 BlockingQueue。该文档仅说调用 BlockingQueue 对象上的 put/take 的线程被隐式阻塞,直到有空间可以放置/有一些东西可以分别使用。但是,它没有提到任何有关并发 put/take 调用的内容。我需要用互斥锁保护这些吗?