aspose file tools*
The moose likes Threads and Synchronization and the fly likes ExecutorService and FutureTask - Blocked Thread Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Threads and Synchronization
Bookmark "ExecutorService and FutureTask - Blocked Thread" Watch "ExecutorService and FutureTask - Blocked Thread" New topic
Author

ExecutorService and FutureTask - Blocked Thread

Rafael F. Oliveira
Greenhorn

Joined: Aug 26, 2008
Posts: 12
Hi,

I have the following code:



I'm running the aforementioned code inside a servlet container (tomcat).

The native method calls a Delphi method that executes a "showMessage", when the futureTask is running the native method calls the showMessage (it will just wait for the user to press "OK"), because it executes inside a servlet, the user doesn't see the dialog message, so, the task will run until the timeout.

The problem is that my task stops, but the thread (pool-1-thread-1) doesn't stop.

In that case, how can I kill a thread?

Thanks in advance.
Mike Simmons
Ranch Hand

Joined: Mar 05, 2008
Posts: 3014
    
  10
If the thread is part of the thread pool in an ExecutorService, the best way is probably to call shutdown() on the ExecutorService.

Alternately, if you aren't yet ready to shut down the whole ExecutorService, you don't really need to stop the thread. It can just wait until the ExecutorService is given a new task that it can work on. Or until shutdown() is called.
Rafael F. Oliveira
Greenhorn

Joined: Aug 26, 2008
Posts: 12
My native method is synchronized and "showMessage" is called in some cases...if the thread isn't stopped or killed new tasks will start in a blocked mode. Because that I would like to kill a specific thread instead of all of them when the timeout is exceeded. Is it possible?

I can get the thread by use the following code:


 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: ExecutorService and FutureTask - Blocked Thread