Задать вопрос

Как запускать 10+ потоков в java без повторяемости кода?

Как запускать произвольное кол-во потоков? Сейчас для 5 потоков приходится использовать
Thread t1 = new myThread();
            Thread t2 = new myThread();
            Thread t3 = new myThread();
            Thread t4 = new myThread();
            Thread t5 = new myThread();
            t1.start();
            t2.start();
            t3.start();
            t4.start();
            t5.start();
            t1.join();
            t2.join();
            t3.join();
            t4.join();
            t5.join();
  • Вопрос задан
  • 2502 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 2
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
Как-то так....
ArrayList<Thread> mythreads = new ArrayList<Thread>();
int tcount = 1000;
for(int i=0; i< tcount; i++) {
     Thread thr = new myThread();
     mythreads.add(thr);
     thr.start();
}
for (Thread thr : mythreads) {
     thr.joint();
}

или по модному
ExecutorService es = Executors.newCachedThreadPool();
for(int i=0;i<5000;i++)
    es.execute(new Runnable() { /*  your task */ });
es.shutdown();
boolean finshed = es.awaitTermination(1, TimeUnit.MINUTES);
Ответ написан
Комментировать
@Calc
ExecutorService

пример можете взять тут
HTTP request multithreading: почему отправляются не все запросы?

или в интернете
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@FlaIDzeres
Как мне кажется тут исчерпывающая информация, tutorials.jenkov.com/java-concurrency/thread-pools.html

Либо по тупому тоже самое что делаете вы но в цикле.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы