Articles of futuro

Comportamento thread subjacente com Future.get (timeout)

Estamos usando o Future com um tempo limite para realizar uma tarefa. TimeOutException um TimeOutException quando o limite de tempo excede. A partir do comportamento do thread dump de thread dump , percebo que o segmento subjacente continua. É o caso? Como ele cuida de vários segmentos em volta? E se nenhuma IOException for lançada […]

Quebre o stream de CompletableFuture

Eu tenho certo stream que executa async usando o CompletableFuture , por exemplo: foo(…) .thenAccept(aaa -> { if (aaa == null) { break! } else { … } }) .thenApply(aaa -> { … }) .thenApply(… Então, se meu foo() retornar null (em um futuro) eu preciso quebrar muito em breve, caso contrário, o stream continuará. […]

Exceção durante a execução de Callable

Eu tenho o seguinte Callable: public class Worker implements Callable{ @Override public Boolean call(){ boolean success=true; //do Something return success; } } Agora estou executando: Worker worker – new Worker(); Future submit = executor.submit(worker); Estou armazenando o envio em tipo de hashMap para que alguma operação seja executada em algum lugar no código. Como posso […]

Transformando um ouvinte em um futuro em java

Estou tentando transformar um ouvinte em um futuro, para conexão assíncrona. Eu não estou acostumado a usar java futures ainda, eu tenho alguma experiência com promises de javascript, mas eu não consigo ver como escrevê-lo em java (eu vi “CompletableFuture” no Java 8 pode resolver o meu problema, infelizmente eu sou preso com java 7). […]

O que Future.cancel () faz se não interromper?

De java docs no Future.cancel () boolean cancel(boolean mayInterruptIfRunning) Tenta cancelar a execução desta tarefa. Essa tentativa falhará se a tarefa já foi concluída, já foi cancelada ou não pôde ser cancelada por algum outro motivo. Se tiver êxito e essa tarefa não tiver iniciado quando o cancelamento for chamado, essa tarefa nunca deverá ser […]

Como criar um futuro completo em java

Qual é a melhor maneira de construir um futuro completo em Java? Eu implementei o meu próprio CompletedFuture abaixo, mas esperava algo como isto que já existe. public class CompletedFuture implements Future { private final T result; public CompletedFuture(final T result) { this.result = result; } @Override public boolean cancel(final boolean b) { return false; […]

O object futuro retornado por executorService.submit (Runnable) contém alguma referência ao object executável?

Vamos supor que temos o seguinte código: List<Future> runningTasks; ExecutorService executor; … void executeTask(Runnable task){ runningTasks.add(executor.submit(task)); } Minhas perguntas são: O runningTasks mantém uma referência ao object de task ? Quanto tempo dura isso? Ainda o mantém após a conclusão da tarefa? Para evitar vazamentos de memory, tenho que tomar cuidado para remover o futuro […]

Operação de pesquisa multithread

Eu tenho um método que leva uma série de consultas, e preciso executá-las em diferentes APIs de mecanismos de pesquisa, como as do Google ou do Yahoo. A fim de paralelizar o processo, um thread é gerado para cada consulta, que são então unidas no final, já que meu aplicativo só pode continuar depois que […]

Um tempo limite futuro mata a execução do encadeamento?

Ao usar um ExecutorService e objects Future (ao enviar tarefas Runnable ), se eu especificar um valor de tempo limite para a function get do futuro, o thread subjacente é morto quando um TimeoutException é lançado?

Por que definir o bit de interrupção em um Callable

Portanto, este recurso ( http://www.ibm.com/developerworks/java/library/j-jtp05236/index.html ) sugere definir o bit de interrupção em um Thread quando esse Thread não lidar com a interrupção em si, ” para que o código mais acima na pilha de chamadas possa saber da interrupção e responder a ela se quiser . ” Digamos que eu esteja usando um ExecutorService […]