Jak Threadpool ponownie wykorzystuje wątki i jak to działa

Moje koncepcje wielowątkowości są słabe i próbują się uczyć.

W Javie wiem, że nie możemy wywołać Nici więcej niż raz, tj

Thread t = new Thread(//Some Runnable);
t.start()

t.start() //Illegal and throw Exception at Runtime.

O ile wiem, zgłasza wyjątek, gdy ponownie wywołujesz t.start (), ponieważ powiązany stos dla wątku jest niszczony po jego wyjściurun() i próbujesz ponownie zainicjować rzeczy.

W takim przypadku to, co wiem o puli wątków, to lepsza wydajność i oszczędność czasu, ponieważ nie ma potrzeby tworzenia nowego wątku. (Czytamhttp://www.javatpoint.com/thread-pooling-in-java)

jeśli nie ma potrzeby tworzenia nowego wątku w scenariuszu ThreadPool, to jak to działa z tym samym wątkiem, który właśnie zakończył swoją metodę uruchamiania, czy ten wątek może zostać ponownie użyty?

Przeczytałem to,http://docs.oracle.com/javase/tutorial/essential/concurrency/pools.html i mówi to „Większość implementacji executorów w java.util.concurrent używa pul wątków, które składają się z wątków roboczych. Ten rodzaj wątku istnieje niezależnie od wykonywanych zadań Runnable i Callable i jest często używany do wykonywania wielu zadań."

Czym jest tutaj wątek Worker, czy jest to coś innego niż zwykłe wątki Java?

z tym linkiemW jaki sposób buforowana pula wątków ponownie wykorzystuje istniejące wątki Dostałem coś, ale wciąż jestem zdezorientowany co do tego, jakie rzeczy można wyeliminować, gdy korzystamy z puli wątków i która daje lepszą wydajność niż przy użyciu zwykłego wątku Java.

Czy możemy tak powiedzieć

Wątek ma trzy części,

Tworzenie (informując OS, że jest to nowy wątek, utwórz dla niego stos).Wykonaj metodę Runnable tj. Run ().Niszczenie wątków.

Biorąc pod uwagę powyższe 3 kroki, krok 1 i krok 3 w wątku można wyeliminować po ustalonej liczbie tworzenia wątków. tylko krok 2 dla każdego zadania zostanie wykonany, dlatego Powitanie nici jest szybsze? czy możemy tak powiedzieć? mam rację?

questionAnswers(4)

yourAnswerToTheQuestion