Ho un oggetto MyThread che istanzio quando la mia app viene caricata attraverso il server, la contrassegno come thread Daemon e quindi chiamo start()
su di essa. Il thread è pensato per sedersi e attendere le informazioni da una coda finché l'applicazione è attiva. Il mio problema/domanda è questa: Attualmente MyThread sta estendendo Thread perché lo contrassegno come Daemon e leggo su come è più preferibile implementare Runnable e usare Executor. Quindi quello che volevo chiedere è se MyThread implementerà Runnable invece di estendere Thread (e ovviamente verrà rinominato) e userò newSingleThreadScheduledExecutor()
come, cosa o forse dove, contrassegnerò qualcosa come Daemon. Spero di non aver fatto un pasticcio di termini, per favore scusami se ho come alcune parti dell'ambiente di multithreading sono molto nuove per me.Executor e Daemon in Java
Grazie Ittai
Update: Il modulo mi riferisco al mio app è una web-app, che ha un paio di discussioni in realtà di questo tipo e ciò che essi hanno in comune è che tutti in il ServletContext
come membro per vari motivi. Attualmente estendo Thread
a WebThread
che ha il ServletContext
come memebr e tutte le sottoclassi possono utilizzarlo. Se passo il paradigma Runnable con Executor e ThreadFactory di base ho bisogno di avere un brutto ibrido di WebRunnable
che implementa Runnable
e ha il ServletContext
come membro pubblico e ho il mio implementare newThread(WebRunnable arg0)
oltre a newThread(Runnable arg0)
. Non sono sicuro di cosa sia meglio. Grazie
+1 per correttezza tecnica - ma c'è qualche vantaggio nell'utilizzo di Executor in questo contesto? Sembra un po 'di "complessità per la complessità" per me (ma forse mi sbaglio su questo ...) – hjhill
Forse no. Ma ho scritto sistemi prima dei quali utilizzare un esecutore a thread singolo per iniziare e collegato a diversi executor in una fase successiva. –
@ Brian- Sto pensando a cosa sta pensando hjhill. Ho un thread in quanto tale e non sono sicuro che valga la pena di utilizzare il ThreadFactory – Ittai