首頁  >  問答  >  主體

Java多线程操作集合的小问题

PHP中文网PHP中文网2763 天前343

全部回覆(4)我來回復

  • PHP中文网

    PHP中文网2017-04-18 10:14:23

    ExecutorService exec = Executors.newFixedThreadPool(8);
    for(final Object obj : list){
        exec.execute(new Runnable() {
            @Override
            public void run() {
                process(obj)
            }
        });
    }
    
    

    我覺得使用這種方式比較好。

    回覆
    0
  • 迷茫

    迷茫2017-04-18 10:14:23

    java8並行流

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-18 10:14:23

    成員變數 index是多執行緒共享變量,你需要加volatile保證多執行緒中這個變數的可見性,宣告程式碼改為如下:

    private volatile int index = 0;

    具體為什麼請學習java並發程式相關基礎知識

    回覆
    0
  • 迷茫

    迷茫2017-04-18 10:14:23

    你這個run()裡面最好採用執行緒同步

    回覆
    0
  • 取消回覆