java for循环四千多次 每次循环内部还要有其他处理逻辑 导致速度很慢 如何优化

java for循环四千多次 每次循环内部都要有其他处理逻辑 导致速度很慢 如何优化

不知道具体的for内部还需要做什么,可以用下面的方式启线程处理,如下两个线程,一个线程跑1-1000另外一个线程跑1000-2000
楼主可以自己对下面的改造一下

    new Thread() {   
              public void  run() {  
                 for(int 1=0 ;i<1000;i++){
                        }

              }
        }.start(); 

        new Thread() {   
              public void  run() {  
                 for(int 1=1000 ;i<2000;i++){
                        }

              }
        }.start(); 

【1】哎,,有些问题不能用并行处理,,,下一个循环操作需要用到上一个循环的结果,,这种需要顺序执行的不好优化

【2】只有那种,不是十分依赖上层循环结果的才可以用并行优化
比如,一个数组乱序,求和(数组长度四千多)
我分成n组分别求和,最后n个组求和,,

不知道题主的“循环内部还要有其他处理逻辑”,,属于哪一种

利用多线程去循环,把你的四千多次拆开分别传递给多个线程去执行

使用并行处理。并行计算

不要每次循环都去处理逻辑,可以循环一百遍然后把这一百个预处理数据开一个线程去处理(具体的数值根据服务器的运载去设置),这样可以做到合理使用cpu资源的同时,提升执行效率

1、增加多线程处理
2、先分小块汇总,然后在大的汇总
3、能执行到跳过的或者跳出循环的控制好

4000个循环本身并不多,建议从“其他处理逻辑”入手优化。如上述几位所言,多线程,并行处理。

对于一些不需要利用其返回结果的,多线程并行处理。可以用eventBus来处理 (参考教程
以现在的计算机速度,4000次循环就感觉慢,最好检查一下代码是否有地方需要改进。

电脑处理的快,不优化也行