sleep() 和 yield()方法的区别

来源:互联网 发布:linux创建一个文件夹 编辑:程序博客网 时间:2024/05/18 23:27

1 sleep方法暂停当前线程后 会给其他线程执行机会 不用考虑其他线程的优先级 但是yield()方法只能让优先级》=自己的线程使用

2 sleep方法会将线程转入阻塞状态 直到经过阻塞时间才回转入就绪状态 而yield()不会将线程转入阻塞状态 而是强制的将它转入就绪状态 。因此可能出现暂停后立马有获得处理器资源被执行

3 sleep生命必须对InterruptedException进行处理 或者抛 或者try catch 而 yield 则没有这种问题

4 sleep() 比 yield()有更好的移植性 因为在不同的操作系统上 对线程的优先级设定上是不一样的 



注:线程的优先级是1~10 主线程是5 由主线程生成的线程的优先级默认也是5

Max_PRIORITY 10

Min_PRIORITY  1

Normal_PRIORITY 5


调用start()和run()方法的区别 

start()方法是开启自定义的线程

run()方法代表的是用的main方法执行的

利用Thread.currentThread().getName()看是谁执行的

0 0
原创粉丝点击