Note that the code you've given here wouldn't quite compile; there are little bits and pieces of extra text here and there, and missing methods like getInstance(), and a lot of likely non-fatal mistakes as well (passing 'i' to the FCS constructor in the loop, for example.) It's hard to say precisely what you expect to happen when you're not showing us the whole code.
But one thing you might not know is that you can call start() on a Thread just once. Once a thread has been started, it can never be "re-started"; when it's done, it has to be just thrown out.
Does Thread expires after run() is executed or we need to stop() explicitly
Note that in general you should not be calling the stop() method on a thread. The Java API discusses why that method is unsafe and why it should be avoided.
Also, on a side note. You may also want to avoid variable "shadowing" where you have local variables named the same as your member variables. In a small example, it's not too hard to follow, but this can certainly lead to confusion and problems as your code grows.
I can't take it! You are too smart for me! Here is the tiny ad:
a bit of art, as a gift, that will fit in a stocking