java中sleep执行完之后,线程进入什么状态

来源:百度知道 编辑:UC知道 时间:2024/05/22 15:28:27
java中sleep执行完之后,线程进入什么状态,就绪还是准备状态,另外问一下yield()执行完呢?还有join呢?
线程a和b,在a中执行b.join(1000),是指b线程执行1秒,a线程阻塞1秒吗?如果时间到了的花,b线程阻塞,a线程立即执行吗

sleep执行后线程进入阻塞状态
yield执行后线程进入就绪状态
join执行后线程进入阻塞状态
join()中止当前线程(也就是a),等待指定(也就是b)线程结束,然后再运行当前线程

线程执行是根据jvm分配的,我们无法保证一个处于可运行可运行状态的线程,一定会被分配执行时间。

所以,join结束后,并不能保证一定会被执行,除非不再有别的线程。