2012-04-24 23 views
8

Ktoś powiedział mi, że nie powinno się rozpocząć własne wątki z webapp uruchomiony pod Tomcat (lub innego pojemnika, przypuszczalnie)zaczynające wątków pod Tomcat

Runnable myRunnable = new Runnable() { 
    public void run() { 
    System.out.println("I'm running"); 
    } 
} 

new Thread(myRunnable).start(); 

lub podobnie:

ScheduledThreadPoolExecutor retrySchedulerService = new ScheduledThreadPoolExecutor(3); 
retrySchedulerService.schedule(dlrRetryTask, 120, TimeUnit.SECONDS); 

Zamiast jednego z powyższych, powinieneś poprosić o wątek z puli wątków, o których wie Tomcat. Czy jest w tym jakaś prawda, czy też jest to pusty poppycock?

Odpowiedz

8

Możesz rozpocząć własne wątki, ale pamiętaj, aby je zatrzymać, gdy aplikacja się zatrzyma. Tomcat ma własną pulę thead, która służy do obsługi żądań przychodzących. Nie sądzę, że warto go używać, nawet jeśli uda się uzyskać do niego dostęp.

Ogólnie rzecz biorąc, nie jest dobrą praktyką uruchamianie wątków w środowisku Java EE, ale nic złego w uruchamianiu wątków w kontenerze serwletów, takim jak Tomcat.

Powiązane problemy