2016-01-18 246 views
1

多核心处理器上的Java线程是否并行运行,即,同时运行多个线程多CPU核心中的Java多线程

[与Java线程并行处理]当你想阻止你的资源由螺纹为缓存

多个线程可以单CPU上运行(虽然,一次一个

+0

此外,即使在单个CPU上,I/O等待也会阻塞很多线程,因此即使没有JVM(或操作系统)的预先调度,也可以拥有多个线程。 – Thilo

+0

可能的重复[在Java中“volatile”的含义是什么?](http://stackoverflow.com/questions/4885570/what-does-volatile-mean-in-java) –

+2

不要改变整个问题,飞行。首先,你问的是易变修饰符,现在你已经完全从你的问题中删除了该部分,即使你已经有了它的答案。你的问题是:“在单核心处理器中volatile如何有用,而volatile的主要目的是将每个cpu缓存值清空到内存中” –

回答

3

波动是非常有用的)并且可以共享资源,所以挥发性仍然有用。

2

JVM不决定要使用的处理器数量。这是OS的工作。 JVM具有创建多个线程并提交它们的功能。

易失性用于保证在并发期间不会从CPU高速缓存中提取数据。

0

首先是JVM产生线程,但它是JVM依赖的硬件。如果它具有多核,JVM可以同时运行多个线程来提取最大性能。

现在谈到用户(您)决定要利用CPU资源的程度,并且通过线程池来完成(通过定义最大线程数可以并行运行),但是您又一次陷入困境与您的硬件配置。