I gone thru SUN
java tutorial and
Thread API, from that what my understanding is a thread is interruptible when it is in NOT RUNNABLE status.
NOT RUNNABLE status is defined as one of the following
1. In sleep
2. In wait
3. In Blocked IO/ waiting for IO
4. IN wait for other thread to complete(i.e join())
when yield method is called, still the thread is in RUNNABLE status. interrupt has no effect on a RUNNABLE thread.
I am not 100 % sure about the above theory, but I tried simulating the above conditions and worked as explained.