java中多线程常见的几个参数
2016-06-15 17:34
267 查看
sleep:在指定的毫秒数内让当前正在执行的线程休眠(暂停执行).
此操作受到系统计时器和调度程序精度和准确性的影响。
该线程不丢失任何监视器的所属权。
调用sleep的时候锁并没有被释放。
休眠
Java SE5引入了更加显示的sleep()作为TimeUnit类的一部分,这个方法允许你指定sleep()延迟的时间单元,因此可以提供更好的可阅读性。
wait:调用wait使线程挂起,直到线程得到了notify或notifyAll消息,线程才会进入就绪状态。
使你可以等待某个条件发生变化,而改变这个条件超出了当前方法的控制能力。
线程的执行被挂起,对象上的锁被释放。意味着另一个任务可以获得这个锁。
因此在该对象中的其他synchronized方法可以在wait期间被调用。
yield:相当于:我的工作已经做的差不多了,可以让给别的线程使用CPU了。
当调用yield时,你也是在建议具有相同优先级的其他线程可以运行。
对于任何重要的控制或在调整应用时,都不能依赖于yield。
yield并不意味着退出和暂停,只是,告诉线程调度如果有人需要,可以先拿去,我过会再执行,没人需要,我继续执行
调用yield的时候锁并没有被释放。
interrupt:中断线程。
Thread类包含interrupt()方法,因此你可以中止被阻塞的任务。
这个方法将设置线程的中断状态。
如果一个线程已经被阻塞,或者试图执行一个阻塞操作,那么设置这个线程的中断状态将抛出InterruptedException。
当抛出该异常或者该任何调用Thread.interrupted()时,中断状态将复位。
你在Executor上调用shutdownNow(),那么它将发送一个interrupt()调用给他启动的所有线程。
此操作受到系统计时器和调度程序精度和准确性的影响。
该线程不丢失任何监视器的所属权。
调用sleep的时候锁并没有被释放。
休眠
Java SE5引入了更加显示的sleep()作为TimeUnit类的一部分,这个方法允许你指定sleep()延迟的时间单元,因此可以提供更好的可阅读性。
wait:调用wait使线程挂起,直到线程得到了notify或notifyAll消息,线程才会进入就绪状态。
使你可以等待某个条件发生变化,而改变这个条件超出了当前方法的控制能力。
线程的执行被挂起,对象上的锁被释放。意味着另一个任务可以获得这个锁。
因此在该对象中的其他synchronized方法可以在wait期间被调用。
yield:相当于:我的工作已经做的差不多了,可以让给别的线程使用CPU了。
当调用yield时,你也是在建议具有相同优先级的其他线程可以运行。
对于任何重要的控制或在调整应用时,都不能依赖于yield。
yield并不意味着退出和暂停,只是,告诉线程调度如果有人需要,可以先拿去,我过会再执行,没人需要,我继续执行
调用yield的时候锁并没有被释放。
interrupt:中断线程。
Thread类包含interrupt()方法,因此你可以中止被阻塞的任务。
这个方法将设置线程的中断状态。
如果一个线程已经被阻塞,或者试图执行一个阻塞操作,那么设置这个线程的中断状态将抛出InterruptedException。
当抛出该异常或者该任何调用Thread.interrupted()时,中断状态将复位。
你在Executor上调用shutdownNow(),那么它将发送一个interrupt()调用给他启动的所有线程。
相关文章推荐
- springMVC教程(六)缓存框架Ehcache使用详解
- java.sql.date与java.util.date区别以及数据库中插入带时分秒的时间
- java 短信验证码===随机数
- eclispe java 自动生成Junit测试类
- 回调方法介绍之中国好室友篇(Java示例)
- java中的一些执行顺序,代码块,静态,构造,成员。。。。(转的)
- java 正则表达式入门
- maven 项目下用java 压缩文件
- Java NIO原理图文分析及代码实现
- 经典再现 基于JAVA平台开发坦克大战游戏
- 【转】Windows搭建Eclipse+JDK+SDK的Android
- Java编程:并发编程的3个特性
- RXjava解决数据管理问题
- [Java] 使用多个 if 语句、else if 和 switch 的区别
- [Java] 类和方法及调用
- Kylin Java RESTful API
- eclipse崩溃后,项目无法启动报错Removing obsolete files from server... Could not clean server 。。。。
- Thinking in java(1):对象导论
- Java动态代理与Cglib库
- java 之DelayQueue实际运用示例