您的位置:首页 > 编程语言 > Java开发

java线程的sleep、yield、wait、join方法

2017-07-27 18:04 330 查看
sleep()方法

运行中的线程,执行sleep()方法,放弃CPU,转到阻塞状态。但不会放弃占有的资源,例如锁。sleep()时间结束,进入可运行状态。

yield()方法

执行yield()方法,如果此时有相同或更高优先级的其他线程处于就绪状态,那么yield()方法把当前线程放到可运行池中。如果只有相同优先级的线程,那么,该线程可能接着马上执行。如果没有相同或更高优先级线程,则什么也不做。yield()方法并不会释放锁。

wait()方法

wait方法用于线程通信,与notify,nofityall配合使用。它必须在synchronized语句块内使用。wait()方法使当前线程暂停执行并释放对象锁标示,让其他线程可以进入synchronized数据块,当前线程被放入对象等待池。有关具体的内容,在下面一篇文章中详细讲解。需要注意,该方法是java.lang.Object的方法。

join()方法

当前运行的线程执行另一个线程的join()方法,当前线程进入阻塞状态,直到另一个线程运行结束,它才会恢复到可就绪状态。join()方法,调用了wait(),因此它会释放锁。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java多线程