有个需求要定时批量的下达任务,为了提高效率,想放到线程池中遍历执行现在使用无界队列,拒绝策略用的默认的,但是担心后期任务越来越多,会出现队列过长导致OOM,求大神指点缓冲队列怎么设置?队列里面大概放多少条任务会占用过多内存导致OOM

解决方案 »

  1.   

    你都用了队列,选择了拒绝策略,怎么还会OOM呢
      

  2.   

    拒绝策略不是队列满了才会生效的么,我这是无界队列,队列没满,内存先满了不就OOM了,不知道我理解的对不对。。
      

  3.   

    拒绝策略不是队列满了才会生效,任务累计越来越多,必然会占用更多的内存,内存超过分配的大小就会OOM;
    使用线程池,队列长度以及拒绝策略要合理使用,避免过长的队列,同时要注意任务执行的时间,尽量不要让任务过多累积。