Java Callable Future Example
yksi Java executor Frameworkin eduista on se, että voimme suorittaa samanaikaisia tehtäviä, jotka voivat palauttaa yhden tuloksen tehtävien käsittelyn jälkeen. Java Concurrency API saavuttaa tämän seuraavilla kahdella liitännällä Callable ja Future. 
Java Callable and Future interfaces
1.1. Kutsuttava
Callable liittymässä on call() – menetelmä. Tässä menetelmässä meidän on toteutettava tehtävän logiikka. Callable – rajapinta on parametrisoitu rajapinta, eli on ilmoitettava, minkä tyyppistä dataa call() – menetelmä palaa.
2.2. Future
Future interfacessa on menetelmiä Callable olion tuottaman tuloksen saamiseksi ja sen tilan hallitsemiseksi.
Java Callable Future Example
tässä esimerkissä luodaan FactorialCalculator, joka on tyyppiä Callable. Se tarkoittaa, että ohitamme sen call() – menetelmän ja laskennan jälkeen palautamme tuloksen call() – menetelmästä. Tämän tuloksen voi myöhemmin hakea pääohjelman hallussa olevasta Future referencestä.
kokeillaan nyt yllä olevaa faktorialaskinta kahden kierteen ja 4 numeron avulla.
ohjelman tuotos.
tässä lähetimme Callable objektin toteutettavaksi toimeenpanijassa submit() – menetelmällä. Tämä menetelmä vastaanottaa parametrina Callable objektin ja palauttaa Future objektin, jota voimme käyttää kahdella päätavoitteella–
-  voimme hallita tehtävän tilaa-voimme peruuttaa tehtävän ja tarkistaa, onko se päättynyt. Tätä varten olemme käyttäneet 
isDone()– menetelmää tarkistaaksemme, olivatko tehtävät päättyneet. -  saamme tuloksen palautettua soittomenetelmällä (). Tähän tarkoitukseen on käytetty 
get()– menetelmää. Tämä menetelmä odottaa, kunnesCallableOlio on suorittanutcall()– menetelmän loppuun ja palauttanut tuloksensa.jos säie keskeytyy
get()– menetelmän odottaessa tulosta, se heittääInterruptedExceptionpoikkeuksen. Joscall()menetelmä heittää poikkeuksen, tämä menetelmä heittääExecutionExceptionpoikkeuksen. 
 Future – rajapinta tarjoaa toisen version get() – menetelmästä eli get-menetelmästä(longtimeout,TimeUnitunit). Tämä get-menetelmän versio, jos tehtävän tulos ei ole käytettävissä, odottaa sitä määritetyn ajan. Jos määritetty aika kuluu eikä tulosta ole vielä saatavilla, menetelmä palauttaa arvon null.
Onnellista Oppimista !!