Join, basic question about thread

However, as with sleep, join is dependent on the OS for timing, so you should not assume that join will wait exactly as long as you specify.

1-Is it only for times that we specify a time in join() method?

2-Is it right for wait() method?

3-Is it the Os or is it the JVM choose which thread to run?

4-Who is “thread scheduler” here? is it part of OS or JVM?

Who schedule threads? JVM or OS? what is the relationship between these of Thread scheduling?

Is it true that:

if one OS thread is mapped to two or more java thread then obviously it is the responsibility of JVM to decide which thread to run when the OS thread is running

if there is direct mapping like one OS thread == one Java thread, then ofcourse OS scheduler decides which thread to run

If we consider that JVM means Java Virtual Machine then we realize that the JVM is an independent computer running within our computer, and therefore, responsible for all Java activities taking place within said JVM.

But this is the JVM that decides which thread must run

“But this is the JVM that decides which thread must run”

I don’t understand what you mean.