Question

J'ai une question qui est liée aux frais généraux possible de ExecutorServices en Java.

La présente mise en œuvre a ExecutorService A d'une capacité de 5 fils.

  • Il fonctionne fils de type A.
  • fils de type A faire de la lecture de la base de données et l'écriture.

Maintenant, un fil de type B courra après certains fils de type A a terminé.

  • Le nombre de types de fils B qui courront est différent de temps en temps.
  • fils de type B font un système de fichiers IO (non base de données).

Alors dois-je

  • ajouter un nouveau fils ExecutorService B type de poignée
  • ou devrais-je augmenter la capacité des fils de ExecutorService A et le type d'exécution B avec celui-là aussi?

Je pense qu'il pourrait y avoir une surcharge supplémentaire pour Java d'avoir deux ExecutorServices, mais d'autre part le nombre total de threads augmentera de toute façon. Est-il important du tout?

Était-ce utile?

La solution

Je recommanderai deux ExecutorServices, vous pouvez profiter des différentes ExecutorServices fournies par le paquet java.util.concurrent.

Il rend le code plus facile et la surcharge est ignorable.

  • un ExecutorService avec un jeu de pool de threads fixé à cinq fils.
  • ExecutorService b avec un pool de threads en cache.

Autres conseils

Si vous parlez de 5 fils de discussion, et vous n'êtes pas épuiser votre capacité de pool de threads, je tendance à dire que les frais généraux woulld soit insignifiante soit, et vous devriez juste aller tout ce que vous jugez être la voie la plus simple .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top