一位开发人员今天告诉我,
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 举报,一经查实,本站将立刻删除。