Создание нескольких потоков с использованием Java RecursiveTasks
Поэтому я пытаюсь ознакомиться с параллельным программированием в Java, поэтому я написал следующий код
public class Test{
public static void main(String[] args){
ForkJoinPool pool = new ForkJoinPool();
pool.invoke(new Agent());
}
}
class thread extends RecursiveTask<Integer>{
thread(){
System.out.println("Thread");
}
public Integer compute(){
thread x = new thread();
x.fork();
return 0;
}
}
который, насколько я понимаю, должен печатать "Thread" бесконечно, но когда я его запускаю, выведите "Thread" только около 20 раз.
Кто-нибудь знает почему?
1 ответ
Решение
Основной поток выйдет и получит текущее состояние потоков в ForkJoinPool. Вы можете увидеть это с
public static void main(String[] args)
{
ForkJoinPool pool = new ForkJoinPool();
pool.invoke(new MyRecursiveTask());
try
{
Thread.sleep(10000);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
(Только для иллюстрации, конечно...)