Java中sleep Wait yield Suspend的区别
来源:互联网 发布:淘宝毛绒玩具店铺介绍 编辑:程序博客网 时间:2024/06/05 02:04
三者都可以使得当前的线程退出执行状态,但是有些使得当前线程进入阻塞状态,有的却不会
Sleep
线程进入阻塞状态,不能得到CPU执行时间,只有等待时间够长之后才会使线程重新进入可执行状态。 调用sleep时线程不会释放他的锁标识。
Wait
wait需和notify配合使用,线程调用wait后进入阻塞状态。wait有两只形式,一种是包含固定时长参数,另一种不包含固定时长参数。包含固定时长参数时在等待时长超出或者调用notify都会使线程重新进入可执行状态;而不包含固定时长参数的只有调用notify才会重新进入可执行状态。wait 和 notify需要使用在synchronized函数或块中,当进入wait时,同步块中的同步数据可以被其他线程使用。
Yield
Yeild只会使当前线程结束执行状态,功能相当于提前让线程的CPU时间使用完毕。当前的线程继续进入可执行队列中,所以有可能当前的线程会投入可执行队列后会立即进行执行。Wait可以使低优先级的线程得到执行时间,但Yeild只会使同优先级的线程得到执行时间。
Suspend
Suspend需和resume配套使用。Suspend使当前线程阻塞,且不会自动回复。只有调用resume才会使当前的线程恢复可执行状态
0 0
- Java中sleep Wait yield Suspend的区别
- Java中sleep(),wait(),yield()的区别
- Java线程中sleep()、wait()和notify()和notifyAll()、suspend和resume()、yield()、join()、interrupt()的用法和区别
- Java线程中sleep()、wait()和notify()和notifyAll()、suspend和resume()、yield()、join()、interrupt()的用法和区别
- Java线程中sleep()、wait()和notify()和notifyAll()、suspend和resume()、yield()、join()、interrupt()的用法和区别
- Java线程中sleep()、wait()和notify()和notifyAll()、suspend和resume()、yield()、join()、interrupt()的用法和区别
- Thread的wait sleep join yield suspend notify区别
- Thread的wait sleep join yield suspend notify区别
- Thread的wait sleep join yield suspend notify区别收藏
- java多线程中yield(),sleep(),wait()区别
- java中yield(),sleep()以及wait()的区别 - -
- java中yield(),sleep()以及wait()的区别
- java中yield(),sleep()以及wait()的区别
- java中yield(),sleep()以及wait()的区别
- java中yield(),sleep()以及wait()的区别
- java中yield(),sleep()以及wait()的区别
- java中yield(),sleep()以及wait()的区别
- java中join(),yield(),sleep()以及wait()的区别(转)
- 2146
- SQLite多线程读写
- Crazyflie2.0笔记四: eclipse编译、开发环境搭建
- Shader之Unity中如果使模型有弯曲效果
- sql 触发器
- Java中sleep Wait yield Suspend的区别
- JavaScript 字符串操作
- js调用php和php调用js的方法举例
- Eclipse在调试过程中修改变量值
- C/C++中extern关键字详解
- Spring 线程池应用
- Crazyflie笔记五: CRTP 实时通信协议(一)
- C++中关于sizeof的那些事
- How to config Bananapi pro AV output as default video signal ?