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

java - La méthode set(int index, E element) dans ArrayList n'a pas besoin d'être synchronisée en cas de multithreading
為情所困
為情所困 2017-05-27 17:40:40
0
2
850

Je sais qu'ArrayList est une classe non sécurisée pour les threads et ne peut pas directement ajouter() et supprimer() dans des situations multithread, mais puis-je utiliser la méthode 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))));
      }
為情所困
為情所困

répondre à tous(2)
阿神

La sécurité sans thread signifie que toutes les opérations de List ne sont pas verrouillées. Vous devez donc contr?ler le verrou dans votre propre thread professionnel.

為情所困

En regardant cette logique, chaque valeur d'index ne peut être accédée (attribuée) que par un seul thread, et il n'y a pas d'accès multithread au même index

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal