qq_27836205
Jordan裔
2017-08-30 06:33
采纳率: 71.5%
浏览 10.3k
已采纳

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

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

9条回答 默认 最新

  • wzk1986618
    王智魁 2017-08-30 07:15
    已采纳

    不知道具体的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(); 
    
    点赞 评论
  • qq_23292875
    Hefei19881002 2017-08-30 06:40

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

    点赞 评论
  • lcmsx
    乱臣贼子 2017-08-30 06:46

    使用并行处理。并行计算

    点赞 评论
  • Small_Mouse0
    鼠小 2017-08-30 07:19

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

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

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

    点赞 评论
  • little_prog
    骑风追马 2017-08-30 07:24

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

    点赞 评论
  • qq_38702393
    一跃上青天 2017-08-30 07:26

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

    点赞 评论
  • u011742045
    迷糊迷途 2017-08-31 03:09

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

    点赞 评论
  • eqmaster
    若海软件科技 2017-08-31 03:35

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

    点赞 评论
  • alisonyu
    旅者Edison 2017-09-01 07:42

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

    点赞 评论

相关推荐