galera, to com uma dúvida e preciso de uma certa ajuda, estou atualizando um código que usa Threads e interface Runnable, que funciona muito bem, porém agora temos as interfaces Callable, Future e CompletableFuture, eu queria saber quando devo usar cada um desses casos, pois não vi necessidade de fazer esta troca, mas ao mesmo tempo não gostaria de deixar o código com aspecto defasado, alguém poderia me dar alguns exemplos ou indicar um bom material didático ?
Tambem ja tive esse duvida, segue resposta
observable-rxjava