gpt4 book ai didi

java - Java 是否支持多核处理器/并行处理?

转载 作者:IT老高 更新时间:2023-10-28 20:51:34 25 4
gpt4 key购买 nike

我知道现在大多数处理器都有两个或更多内核,多核编程风靡一时。是否有在 Java 中使用它的功能?我知道 Java 有一个 Thread 类,但我也知道这是在多核流行之前很长一段时间。如果我可以在 Java 中使用多个内核,我会使用什么类/技术?

最佳答案

Does Java have support for multicore processors/parallel processing?

是的。它也是其他编程语言的平台,其中的实现增加了“真正的多线程”或“真正的线程”卖点。 G1 Garbage Collector新版本中引入的也利用了多核硬件。

Java 并发实践

尝试获取 Java Concurrency in Practice 的副本 书。


If I can make use of multiple cores in Java, what class/technique would I use?

java.util.concurrent

Utility classes commonly useful in concurrent programming. This package includes a few small standardized extensible frameworks, as well as some classes that provide useful functionality and are otherwise tedious or difficult to implement. Here are brief descriptions of the main components.

执行者

Executor是一个简单的标准化接口(interface),用于定义自定义的类线程子系统,包括线程池、异步 IO 和轻量级任务框架。

队列

java.util.concurrent ConcurrentLinkedQueue类提供高效的可扩展线程安全非阻塞 FIFO 队列。

时机

TimeUnit类提供多个粒度(包括纳秒)来指定和控制基于超时的操作。包中的大多数类都包含基于超时和无限期等待的操作。

同步器

四个类有助于常见的专用同步习惯用法。 Semaphore是经典的并发工具。 CountDownLatch是一个非常简单但非常常见的实用程序,用于阻塞直到给定数量的信号、事件或条件成立。 [...]

并发集合

除了队列之外,这个包还提供了一些设计用于多线程上下文的集合实现:ConcurrentHashMap , CopyOnWriteArrayList , 和 CopyOnWriteArraySet .


如果您想将线程数与可用 CPU 数相匹配,这也会派上用场,例如:

int n = Runtime.getRuntime().availableProcessors();

关于java - Java 是否支持多核处理器/并行处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3330430/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com