sleep:在指定的毫秒数内让当前正在执行的线程休眠(暂停执行),此操作受到系统计时器和调度程序精度和准确性的影响。该线程不丢失任何监视器的所属权。
通过调用sleep使任务进入休眠状态,在这种情况下,任务在指定的时间内不会运行。
调用sleep的时候锁并没有被释放。
休眠
Java SE5引入了更加显示的sleep()版本作为TimeUnit类的一部分,这个方法允许你指定sleep()延迟的时间单元,因此可以提供更好的可阅读性。TimeUnit还可以被用来执行转换,就想稍后你会在本书中看到的那样。

wait:调用wait使线程挂起,知道线程得到了notify或notifyAll消息,线程才会进入就绪状态。
使你可以等待某个条件发生变化,而改变这个条件超出了当前方法的控制能力。
线程的执行被挂起,对象上的锁被释放。意味着另一个任务可以获得这个锁。因此在改对象中的其他synchronized方法可以在wait期间被调用。
就意味着生命“我已经刚刚做完能做的所有事情,因此我要在这里等待,但是我希望其他synchronized操作在条件适合的情况下才能够执行”

yield:如果知道已经完成了在run()方法的循环的一次迭代过程中所需要的工作,就可以给线程调度一个机制暗示:我的工作已经做的差不多了,可以让给别的线程使用CPU了。通过调用yield()来实现。
当调用yield时,你也是在建议具有相同优先级的其他线程可以运行。
对于任何重要的控制或在调整应用时,都不恩那个依赖于yield。实际上,yield经常被误用。
(yield并不意味着退出和暂停,只是,告诉线程调度如果有人需要,可以先拿去,我过会再执行,没人需要,我继续执行)
调用yield的时候锁并没有被释放。

interrupt:中断线程。
中断
Thread.interrupt()或者新类库里面通过Executor的submit()来获得Future<?>返回值,这个Future提供cancel()以停止这个线程。

Thread类包含interrupt()方法,因此你可以终于被阻塞的任务,这个方法将设置线程的中断状态。如果一个线程已经被阻塞,或者视图执行一个
阻塞操作,那么设置这个线程的终端状态将抛出InterruptedException。当抛出该异常或者该任何调用
Thread.interrupted()时,中断状态将复位。
你在Executor上调用shutdownNow(),那么它将发送一个interrupt()调用给他启动的所有线程。

最新文章

  1. AngularJS过滤器filter-保留小数,小数点-$filter
  2. HDU 3720 Arranging Your Team(DFS)
  3. Synergy
  4. 「ruby/MiniMagick」用MiniMagick处理图片
  5. Swift语法总结补充(一)
  6. Windows下将txt导入MySQL及远程连接设置
  7. cocos2d-x CCScale9Sprite
  8. 我用的Linux命令
  9. Druid数据库连接池两种简单使用方式
  10. 十四、职责链(Chain of Responsibility)模式--行为型模式(Behavioral Pattern)
  11. [模板]Min_25筛
  12. 20165213Java第二次实验
  13. 2018/05/11 PHP 设计模式之 适配器模式
  14. 201621123001 《Java程序设计》第12周学习总结
  15. MySQL Transaction--Sprint中访问只读从库的设置
  16. SpringCloud如何创建一个服务提供者provider
  17. CentOS7 mini安装后没有ifconfig命令的解决办法
  18. java字符串面试题
  19. UVA408-水的深度的伪随机数
  20. 修改字段结构之ArcGIS Diagrammer

热门文章

  1. UVA Live 6437 Power Plant 最小生成树
  2. Python与数据库[2] -&gt; 关系对象映射/ORM[0] -&gt; ORM 与 sqlalchemy 模块
  3. 01Trie树【p2420】 让我们异或吧
  4. codevs 2837 考前复习——01背包
  5. JMeter之Ramp-up Period(in seconds)说明(可同时并发)(转载)
  6. html 打印代码,支持翻页
  7. 如何给JQ的ajax方法中的success()传入参数?
  8. ASP.NET MVC学习---(八)三个比较常用的方便的功能
  9. ASP.NET MVC学习---(七)Razor视图引擎语法
  10. 2017.9.15 postgres使用postgres_fdw实现跨库查询