Sto cercando di capire come implementare il threading in un'applicazione Java che utilizza Spring per la gestione delle transazioni. Ho trovato la sezione TaskExecut in Spring documentation e ThreadPoolTaskExecutor sembra che si adatta alle mie esigenze;Qualche buon threading di Spring con un esempio di TaskExecutor?
ThreadPoolTaskExecutor
Questa implementazione può essere utilizzato solo in un ambiente Java 5, ma è anche il più comunemente usato uno in quell'ambiente. Espone le proprietà del bean per la configurazione di java.util.concurrent.ThreadPoolExecutor e lo avvolge in un TaskExecutor. Se hai bisogno di qualcosa di avanzato come ScheduledThreadPoolExecutor, si consiglia di utilizzare invece ConcurrentTaskExecutor.
Tuttavia, non ho idea di come utilizzarlo. Ho cercato buoni esempi per un po 'ora senza fortuna. Se qualcuno mi può aiutare, lo apprezzerei.
Penso che il mio problema sta pensando questo è più complessa, allora è. Ho visto http://docs.huihoo.com/javadoc/spring/2.0/org/springframework/scheduling/concurrent/ThreadPoolTaskExecutor.html#createQueue(int) e ho ipotizzato che ThreadPoolTaskExecutor avesse un meccanismo di accodamento incorporato. –
Forse non mi sono sbagliato, perché è queueCapacity? Mi sento ancora come se mi mancasse qualcosa qui. –
Se la capacità della coda è maggiore di 0, crea una coda, in modo che le attività attivate da un determinato TaskExecutor possano attendere fino a quando un thread è disponibile dal pool. La capacità indica quanti spazi ci sono nella coda. Se la coda si riempie, l'esecutore bloccherà (il metodo execute non tornerà finché non si apre uno spazio). Ecco il documento in coda: http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/LinkedBlockingQueue.html –