Come si comporta Java Future.get()
nel caso in cui venga chiamato più volte al completamento dell'attività? Restituisce lo stesso risultato? Oppure lancia uno e più volte ExecutionException
con la stessa eccezione se il calcolo fallisce? Non riesco a trovare nulla nei documenti a riguardo!Java - Future.get() invocazioni multiple
risposta
È possibile chiamare get()
su un Future
tutte le volte che si desidera e bloccherà solo se l'attività che produce il risultato non è ancora finita.
Se l'attività è già terminata, verrà restituito immediatamente il risultato dell'attività.
Se l'attività non è riuscita con un'eccezione, chiamando get()
verrà generato un valore ExecutionException
ogni volta che viene chiamato.
Non riesco a trovare nulla nei documenti a riguardo!
Hai letto? perché quando li ho letti ho avuto la risposta e qui è ....
V get() throws InterruptedException, ExecutionException
Waits, se necessario, per il calcolo per completare, e poi recupera il suo risultato.
Returns: the computed result Throws: CancellationException - if the computation was cancelled ExecutionException - if the computation threw an exception InterruptedException - if the current thread was interrupted while waiting
Se calcolo non è completato si aspetta, e se ha già completato il risultato sarà tornare al più presto, non importa quante volte lo si chiama
Dove stai leggendo? in https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html#get-- Vedo: Attesa se necessario per il calcolo da completare e quindi recupera il risultato . Senza l'ultima parte Dove ottieni queste informazioni? Non voglio fare affidamento su comportamenti privi di documenti, so cosa succede se provo, ma volevo il contratto preciso. –
@MarcoServetto, quindi ti preghiamo di leggere attentamente la riga, attenderà se il processo non è completato o restituirà il risultato, non è scritto da nessuna parte che verrà un'eccezione se la chiami ripetutamente. "Ottengo quell'informazione provandola, e poi è arrivato alla conclusione » –
- 1. Java Multiple ResourceBundles
- 2. Deserialize multiple Java Objects
- 3. È Future.get() un sostituto per Thread.join()?
- 4. Comportamento di future.get con 0 timeout
- 5. Struttura a colonne multiple Java
- 6. Calcolo della catena di invocazioni implicite
- 7. È sicuro annidare le invocazioni di macro?
- 8. JMock - diverse invocazioni con diversi argomenti
- 9. Chiamata di metodo ai blocchi Future.get(). È davvero desiderabile?
- 10. Sostituzioni multiple Java su un singolo passaggio
- 11. Classi Enum multiple in un file Java
- 12. Java oggetto generico con interfacce multiple colata
- 13. std :: future.get() a volte bloccato in os x
- 14. Ottenere "Troppo pochi invocazioni" a prova di unità con Spock
- 15. Più invocazioni dello stesso metodo su un mock con minitest
- 16. Invocazioni del metodo di conteggio in Unit test
- 17. Mockito verificare() non riesce con "troppe invocazioni reali"
- 18. Mockito - verificare separatamente molteplici invocazioni sullo stesso metodo
- 19. Latex Table multiple row e multiple column
- 20. Java - Number Game - Multiple ActionListener nella stessa classe
- 21. primavera-security java config: come configurare le istanze multiple AuthenticationManager
- 22. Java Swing - Intestazioni multiple di colonne in una tabella J?
- 23. Unisci (Concat) Multiple JSONObjects
- 24. "use" istruzione php multiple?
- 25. Variabili multiple
- 26. Multiple Cmake_Prefix_Paths
- 27. iterazioni multiple
- 28. Multiple NSPredicate
- 29. multiple @ComponentScan nella primavera 4?
- 30. Java7 gestione di eccezioni multiple
Il [futuro] (https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html) doc di classe (e [Future.get] (https://docs.oracle.com/javase/8/docs /api/java/util/concurrent/Future.html#get--)) risponde alla maggior parte delle domande - deve aver letto qualcos'altro. – user2864740
E potresti anche provarlo e vederlo da solo. –