Domanda

Ho una domanda che è legato alla possibile sovraccarico di ExecutorServices in Java.

La presente realizzazione ha ExecutorService A con una capacità di 5 fili.

  • Si corre le discussioni di tipo A.
  • discussioni tipo A fare un po 'di lettura e scrittura del database.

Ora, un filo di tipo B verrà eseguito dopo alcuni fili di tipo A ha terminato.

  • Il numero di fili di tipo B che eseguiranno diverso di volta in volta.
  • discussioni tipo B fare qualche filesystem IO (il database).

Quindi dovrei

  • aggiungere un nuovo ExecutorService al tipo di maniglia B discussioni
  • o devo aumentare la capacità di ExecutorService A e tipo run discussioni B con quella pure?

mi viene da pensare che ci potrebbe essere un certo overhead in più per Java per avere due ExecutorServices, ma d'altra parte il numero totale di thread aumenterà in entrambi i modi. Ha importanza a tutti?

È stato utile?

Soluzione

Io vi consiglio due ExecutorServices, allora si può usufruire dei diversi ExecutorServices fornite dal pacchetto java.util.concurrent.

Si rende il codice più semplice e il sovraccarico è ignorabile.

  • ExecutorService una con un set piscina filo fissato a cinque fili.
  • ExecutorService b con un pool di thread cache.

Altri suggerimenti

Se si sta parlando di 5 discussioni, e non sei esaurire la capacità del pool di thread, tenderei a dire che il sovraccarico woulld essere insignificante in entrambi i casi, e si dovrebbe solo andare tutto ciò che riteniamo essere la via più semplice .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top