Does it mean Thread.sleep() puts the current Thread to sleep?
Yes. Only the current thread can do that.
What if t1 wants to put t to sleep. that shouldn't be possible correct?
Right. You can set a volatile boolean
flag that will cause another thread to call Thread.sleep(...)
but another thread can't cause a thread to sleep.
volatile boolean shouldSleep = false;
...
// check this flag that might be set by another thread to see if I should sleep
if (shouldSleep) {
Thread.sleep(...);
}