微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

一位开发人员今天告诉我,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轻松完成.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐