Assigning task Sleeping 2 secs LongRunningThread LongRunningThread #4 is run LongRunningThread #4: sleeping 10000 msecs stop() stop() -- done ------- Threads ------- #0: Thread[main,5,main] ------- Threads ------- Assigning task 1 Thread Thread #1 is run Thread #1: sleeping 2808: -- done done with task 1 ------- Threads ------- #0: Thread[main,5,main] #1: Thread[Demo ReusableThread,5,main] ------- Threads ------- Assigning task 2 Thread Thread #2 is run Thread #2: sleeping 3493: -- done done with task 2 Stopping thread done ------- Threads ------- #0: Thread[main,5,main] ------- Threads ------- LongRunningThread LongRunningThread #1 is run LongRunningThread #1: sleeping 500 msecs LongRunningThread LongRunningThread #2 is run LongRunningThread #2: sleeping 300 msecs LongRunningThread LongRunningThread #1 is run LongRunningThread #1: sleeping 20000 msecs