加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java是否自动针对多核处理器优化循环

发布时间:2020-12-15 04:27:23 所属栏目:Java 来源:网络整理
导读:一位开发人员今天告诉我,Java(或JIT)可以自动优化for循环的执行,这样它就可以使用计算机上所有可用的CPU,只要for循环的每次迭代中的代码都能在不执行的情况下执行依赖于在循环的先前迭代中修改的变量. 这是一种荒谬的一厢情愿的想法,还是有任何真相? 解决方
一位开发人员今天告诉我,Java(或JIT)可以自动优化for循环的执行,这样它就可以使用计算机上所有可用的CPU,只要for循环的每次迭代中的代码都能在不执行的情况下执行依赖于在循环的先前迭代中修改的变量.

这是一种荒谬的一厢情愿的想法,还是有任何真相?

解决方法

不,Java不会这样做.

这可以通过编写一个有用的简单程序来验证,并检查繁忙的CPU核心数.

像这样的东西:

public static void main(String[] args) throws Exception {
    for (int i = 0 ; i < 1000000 ; i++) {
        String s = "this XXX a test".replaceAll("XXX"," is ");
    }
}

运行此操作时,您将看到只使用一个CPU核心.如果要并行化这样的东西,则需要使用多个线程,这可以使用Java 8 Stream API或使用ExecutorService轻松完成.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读