Chinaunix首页 | 论坛 | 博客
  • 博客访问: 285656
  • 博文数量: 93
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 830
  • 用 户 组: 普通用户
  • 注册时间: 2016-02-25 10:44
个人简介

一杯茶,一台电脑

文章分类

全部博文(93)

文章存档

2018年(4)

2017年(57)

2016年(32)

分类: Java

2017-09-15 11:13:54

Java多线程之:Sleepyield的区别
    1.sleep方法暂停当前线程后,会给其他线程执行的机会,不会理会其他线程的优先级.但是yield方法只会给优先级相同,或优先级更高的线程执行等会

    2.sleep方法会将线程转入阻塞状态,直到经过阻塞时间才会转入就绪状态.而yield不会将线程转入阻塞状态,它只是强制当前线程进入就绪状态.因此完全可能某个线程调用yield方法暂停之后,立即再次获得处理器资源被执行.

    3.sleep方法声明抛出了InterruptedException异常,所以调用sleep方法时要么捕捉该异常,要么显式声明抛出该异常.而yield方法则没有声明抛出任何异常.

    4.sleep方法比yield方法有更好的移植性,通常不要依靠yield来控制并发线程的执行
阅读(676) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~