Hi Subu.
Instance members belong to instances and not classes. The example of Mrishnan is what you need to understand. If you extend a class from Thread, each instance will have their separate copies of their instance members. So, they're not shared. However, if you're creating your threads through means of the Runnable interface, using the same instance of the Runnable interface, you'll have shared instance members, because they actually belong to the class that implements the Runnable interface (and not to the thread itself). Is it clear?
Additionally, you might wanna take a look at synchronization issues. Be carefull with the concept of "shared data" (maybe this is what is making you confused) in multithreading environments. Please, take a look at the following article:
-
http://www.javaworld.com/javaworld/jw-07-1997/jw-07-hood.html -
http://www.onjava.com/pub/a/onjava/excerpt/jthreads3_ch6/index1.html