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(),因此它会释放锁。
运行中的线程,执行sleep()方法,放弃CPU,转到阻塞状态。但不会放弃占有的资源,例如锁。sleep()时间结束,进入可运行状态。
yield()方法
执行yield()方法,如果此时有相同或更高优先级的其他线程处于就绪状态,那么yield()方法把当前线程放到可运行池中。如果只有相同优先级的线程,那么,该线程可能接着马上执行。如果没有相同或更高优先级线程,则什么也不做。yield()方法并不会释放锁。
wait()方法
wait方法用于线程通信,与notify,nofityall配合使用。它必须在synchronized语句块内使用。wait()方法使当前线程暂停执行并释放对象锁标示,让其他线程可以进入synchronized数据块,当前线程被放入对象等待池。有关具体的内容,在下面一篇文章中详细讲解。需要注意,该方法是java.lang.Object的方法。
join()方法
当前运行的线程执行另一个线程的join()方法,当前线程进入阻塞状态,直到另一个线程运行结束,它才会恢复到可就绪状态。join()方法,调用了wait(),因此它会释放锁。
相关文章推荐
- java关于线程的sleep(),yield(),join(),wait(),notify(),notifyAll()等方法的总结
- java notify()、 notifyAll()、 wait()、sleep()、yield()、join()方法学习
- Java线程中sleep()、wait()和notify()和notifyAll()、yield()、join()等方法的用法和区别
- JAVA多线程之——wait/yield/sleep/join方法的区别
- sleep(),wait(),yield()和join()方法的区别
- sleep()、wait()、yield()、join()方法 解析
- JAVA中sleep()、wait()、yield()、join()方法浅析
- sleep()、wait()、yield()、join()方法 解析
- sleep(),wait(),yield(),join()方法的区别
- sleep(),wait(),yield()和join()方法的区别
- sleep()、wait()、yield()、join()方法 解析
- sleep()、wait()、yield()和join()方法特点及区别
- 一目了然,Java线程各方法区别:sleep, yield, join, wait, notify
- JAVA中sleep()、wait()、yield()、join()方法浅析
- JAVA中sleep()、wait()、yield()、join()方法浅析
- sleep()、wait()、yield()、join()方法 解析
- sleep(),wait(),yield()和join()方法的区别
- Java线程中sleep()、wait()和notify()和notifyAll()、yield()、join()等方法的用法和区别
- java 多线程 sleep() wait() yield() join()方法解析
- JAVA多线程之——wait/yield/sleep/join方法的区别