_Kurimatzu_ Postado Dezembro 9, 2016 Denunciar Compartilhar Postado Dezembro 9, 2016 Eu tenho um for, que vai de 0 até 9999999, porém, como eu faço uma "thread" que processa esse for? (para não lagar na hora que ele tá processando o for). Link para o comentário Compartilhar em outros sites More sharing options...
Guest Coe Postado Dezembro 9, 2016 Denunciar Compartilhar Postado Dezembro 9, 2016 E se eu quiser fazer com várias threads para ser mais rápido? Tem como? ExecutorService Executor = Executors.newFixedThreadPool(3); Executor.execute(new Runnable(){ public void run(){ for(int i = 1; i <= 1_000_000; i++){ final int j = i; Executor.execute(new Runnable(){ public void run(){ System.out.println("Mensagem #" + j); } }); } } }); Link para o comentário Compartilhar em outros sites More sharing options...
leonardosc Postado Dezembro 9, 2016 Denunciar Compartilhar Postado Dezembro 9, 2016 Ué, se tu for fazer apenas com 1 thread, é só fazer assim.... new Thread(() -> { for (...) { // ... } }).start(); Ou, usando ThreadExecutor // Coloca no escopo da classe, não do método. ExecutorService executor = Executors.newSingleThreadExecutor(); // Ai lá aonde você precisa "processar" esse for... executor.submit(() -> { for (...) { // ... } }); Você também pode processar tudo isso paralelamente, procure por ForkJoinPool, veja se ajuda. Se tiver usando java 7, use new Runnable() {} no lugar do lambda... Link para o comentário Compartilhar em outros sites More sharing options...
_Kurimatzu_ Postado Dezembro 9, 2016 Autor Denunciar Compartilhar Postado Dezembro 9, 2016 Ué, se tu for fazer apenas com 1 thread, é só fazer assim.... new Thread(() -> { for (...) { // ... } }).start(); Ou, usando ThreadExecutor // Coloca no escopo da classe, não do método. ExecutorService executor = Executors.newSingleThreadExecutor(); // Ai lá aonde você precisa "processar" esse for... executor.submit(() -> { for (...) { // ... } }); Você também pode processar tudo isso paralelamente, procure por ForkJoinPool, veja se ajuda. Se tiver usando java 7, use new Runnable() {} no lugar do lambda... E se eu quiser fazer com várias threads para ser mais rápido? Tem como? Link para o comentário Compartilhar em outros sites More sharing options...
_Kurimatzu_ Postado Dezembro 9, 2016 Autor Denunciar Compartilhar Postado Dezembro 9, 2016 ExecutorService Executor = Executors.newFixedThreadPool(3); Executor.execute(new Runnable(){ public void run(){ for(int i = 1; i <= 1_000_000; i++){ final int j = i; Executor.execute(new Runnable(){ public void run(){ System.out.println("Mensagem #" + j); } }); } } }); ExecutorService Executor = Executors.newFixedThreadPool(3); 3 Threads? Link para o comentário Compartilhar em outros sites More sharing options...
Guest Coe Postado Dezembro 9, 2016 Denunciar Compartilhar Postado Dezembro 9, 2016 ExecutorService Executor = Executors.newFixedThreadPool(3); 3 Threads? 1 Thread vai aumentando o número e mandando pra outras 2 Threads que o processam Link para o comentário Compartilhar em outros sites More sharing options...
_Kurimatzu_ Postado Dezembro 9, 2016 Autor Denunciar Compartilhar Postado Dezembro 9, 2016 1 Thread vai aumentando o número e mandando pra outras 2 Threads que o processam Tem como travar o código até q isso seja processado? Tipo, to usando ele nem processa o for, passa direto. Link para o comentário Compartilhar em outros sites More sharing options...
Guest Coe Postado Dezembro 9, 2016 Denunciar Compartilhar Postado Dezembro 9, 2016 Tem como travar o código até q isso seja processado? Tipo, to usando ele nem processa o for, passa direto. você quer que o próximo código seja processado só depois que o for acabar? Link para o comentário Compartilhar em outros sites More sharing options...
ExtraPlays Postado Dezembro 9, 2016 Denunciar Compartilhar Postado Dezembro 9, 2016 Sua dúvida foi marcada como [Resolvido] e movido à área de dúvidas resolvidas. Atenciosamente, Gamer's Board Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
_Kurimatzu_
Eu tenho um for, que vai de 0 até 9999999, porém, como eu faço uma "thread" que processa esse for?
(para não lagar na hora que ele tá processando o for).
Link para o comentário
Compartilhar em outros sites
8 respostass a esta questão
Posts Recomendados