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

我知道,现在大多数处理器都有两个或多个内核,因此多核编程非常流行。有在Java中利用此功能的功能吗?我知道Java有一个Thread类,但是我也知道这是在多核流行之前的很长时间了。如果我可以使用Java中的多个内核,我将使用什么类/技术?

回答:

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

是。它还是其他编程语言的平台,在该平台上,实现增加了“真正的多线程”或“真正的线程”卖点。在较新版本中引入的G1垃圾收集器还利用了多核硬件。

回答:

尝试获取《 Java Concurrency in

Practice》 一书的副本。


如果我可以使用Java中的多个内核,我将使用什么类/技术?

回答:

通常在 有用

。该软件包包括一些小的标准化可扩展框架,以及一些提供有用功能的类,这些类否则是乏味的或难以实现的。以下是主要组件的简要说明。

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

java.util.concurrent ConcurrentLinkedQueue类提供了高效的可伸缩线程安全无阻塞FIFO队列。

TimeUnit类提供了用于指定和控制超时基于操作的多个粒度(包括毫微秒)。包中的大多数类除了不确定的等待时间以外,还包含基于超时的操作。

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

除了队列,这个包提供了几个集合实现在多线程环境中设计用于:ConcurrentHashMapCopyOnWriteArrayList,和CopyOnWriteArraySet


如果您想将线程数与可用CPU数进行匹配,这也非常有用:

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

以上是 Java是否支持多核处理器/并行处理? 的全部内容, 来源链接: utcz.com/qa/415218.html

回到顶部