Boost Thread 库与 java.util.concurrent 库相比如何?
性能至关重要,因此我更愿意继续使用 C++(尽管现在 Java 快多了)。鉴于我必须用 C++ 编写代码,存在哪些库可以使线程处理变得简单且不易出错。
我最近听说,从 JDK 1.5 开始,Java 内存模型已更改以解决一些并发问题。 C++怎么样?上一次用 C++ 进行多线程编程是在 3-4 年前,当时我使用的是 pthreads。虽然,我不想再将它用于大型项目。我所知道的唯一其他选择是 Boost Threads。但是,我不确定它是否好。我听说过有关 java.util.concurrent 的好消息,但对 Boost 线程还一无所知。
最佳答案
java.util.concurrent 和 boost threads library具有重叠的功能,但 java.util.concurrent 还提供 a) 更高级别的抽象和 b) 更低级别的功能。
Boost 线程提供:
- 线程(Java:java.util.Thread)
- 锁定(Java:java.lang.Object 和 java.util.concurrent.locks)
- 条件变量(Java。java.lang.Object 和 java.util.concurrent)
- 屏障(Java:Barrier)
java.util.concurrent 还有:
- Semaphores
- Reader-writer locks
- 并发数据结构,例如一个BlockingQueue或 concurrent lock-free hash map .
- Executor作为高度灵活的消费者生产者系统提供服务。
- Atomic运营。
旁注:C++ 目前没有内存模型。在不同的机器上,相同的 C++ 应用程序可能必须处理不同的内存模型。这使得 C++ 中的可移植、并发编程变得更加棘手。
关于java.util.concurrent 与 Boost Threads 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1758664/