国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

java - Kaedah set(int index, E element) dalam ArrayList tidak perlu disegerakkan dalam kes multi-threading
為情所困
為情所困 2017-05-27 17:40:40
0
2
851

Saya tahu bahawa ArrayList ialah kelas tidak selamat benang dan tidak boleh terus menambah() dan mengeluarkan() dalam situasi berbilang benang, tetapi bolehkah saya menggunakan kaedah set(int index, E element)?

      List<T> records = InstanceUtil.newArrayList();
      for (int i = 0; i < ids.getRecords().size(); i++) {
        records.add(null);
      }
      ExecutorService executorService = Executors.newFixedThreadPool(5);
      for (int i = 0; i < ids.getRecords().size(); i++) {
        final int index = i;
        executorService.execute(() -> records.set(index, queryById(ids.getRecords().get(index))));
      }
為情所困
為情所困

membalas semua(2)
阿神

Keselamatan bukan benang bermakna semua operasi Senarai tidak dikunci. Jadi anda perlu mengawal kunci dalam utas perniagaan anda sendiri.

為情所困

Melihat logik ini, setiap nilai indeks hanya boleh diakses (diberikan) oleh satu utas, dan tiada akses berbilang benang kepada indeks yang sama.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan