Ich versuche das Konzept der Threadpools in Java zu verstehen. Dazu lese ich verschiedene Tutorials, einschließlich dieses.There is a performance overhead associated with starting a new thread,
and each thread is also allocated some memory for its stack etc.
< /code>
Der darin aufgeführte Code bedeutet jedoch, dass der Thread nach dem Ende der Ausführung des aus der Task -Warteschlange ausgestattete Ausführung sterben wird, und somit wird seine Ressource verwendet und der Müll von JVM erfasst: < /p>
public void run(){
while(!isStopped()){
try{
Runnable runnable = (Runnable) taskQueue.dequeue();
runnable.run();
} catch(Exception e){
//log or otherwise report exception,
//but keep pool thread alive.
}
}
}
< /code>
Wenn der Thread stirbt, was ist dann der Zweck des Ganzen? Ich dachte, dass der Faden in einem Fadenpool zu einem Looper analog sein sollte und schlafen und aufwachen sollte, wenn der Runnable vorbei ist. Wenn es mit dem Runnable fertig ist, ohne zu schlafen , ohne zerstört zu werden, kann die Ressource möglicherweise wiederverwendet werden - , nicht Müll, das . Oder ist es nur ein vereinfachtes Beispiel, das ich überprüft habe?
Java -Threadpool -Zweck ⇐ Java
-
- Similar Topics
- Replies
- Views
- Last post