/ / Wielokrotne przesłanie tej samej komendy (Runnable) do usługi executora w Javie - java

Składanie tego samego polecenia (Runnable) wiele razy do usługi executora w Javie - java

Chcę zaplanować to samo polecenie równoleglemoda za pomocą usługi executora w Javie. Napisałem wrapper nad executorem puli wątków, który bierze równoległe liczenie, aby zaplanować polecenie jako parametr, aw pętli for planuje polecenie (tj. Tę samą instancję wiele razy).

Czy to podejście jest prawidłowe? Czy jest jakiś sugerowany sposób na zrobienie tego? Używam wiosny do stworzenia tych ziaren.

Odpowiedzi:

3 dla odpowiedzi № 1

Możesz użyć ScheduledExecuterService następująco:

import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

public class ScheduledExecutorTest {

private final static ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);

public static void main(final String[] args) throws InterruptedException {
scheduler.scheduleAtFixedRate(new Runnable() {
public void run() {
System.out.println("executed");
}
}, 0, 1, TimeUnit.SECONDS);


Thread.sleep(10000);
scheduler.shutdownNow();
}

}

Spowoduje to wykonanie run Metoda co sekundę zaczyna się natychmiast.

Dzięki takiemu podejściu możesz dodać go wiele razy do scheduledExecuterService:

Runnable command = new Runnable() {
public void run() {
System.out.println("executed");
}
};
scheduler.scheduleAtFixedRate(command, 0, 1, TimeUnit.SECONDS);
scheduler.scheduleAtFixedRate(command, 0, 1, TimeUnit.SECONDS);