yield() sleep() wait() 区别
来源:互联网 发布:拍牌照软件 编辑:程序博客网 时间:2024/05/23 12:11
1.sleep()
使当前线程(即调用该方法的线程)暂停执行一段时间,让其他线程有机会继续执行,但它并不释放对象锁。也就是如果有Synchronized同步块,其他线程仍然不同访问共享数据。注意该方法要捕获异常
比如有两个线程同时执行(没有Synchronized),一个线程优先级为MAX_PRIORITY,另一个为MIN_PRIORITY,如果没有Sleep()方法,只有高优先级的线程执行完成后,低优先级的线程才能执行;但当高优先级的线程sleep(5000)后,低优先级就有机会执行了。
总之,sleep()可以使低优先级的线程得到执行的机会,当然也可以让同优先级、高优先级的线程有执行的机会。
2.join()
join()方法使调用该方法的线程在此之前执行完毕,也就是等待调用该方法的线程执行完毕后再往下继续执行。注意该方法也要捕获异常。
3.yield()
它与sleep()类似,只是不能由用户指定暂停多长时间,并且yield()方法只能让同优先级的线程有执行的机会。
使当前线程(即调用该方法的线程)暂停执行一段时间,让其他线程有机会继续执行,但它并不释放对象锁。也就是如果有Synchronized同步块,其他线程仍然不同访问共享数据。注意该方法要捕获异常
比如有两个线程同时执行(没有Synchronized),一个线程优先级为MAX_PRIORITY,另一个为MIN_PRIORITY,如果没有Sleep()方法,只有高优先级的线程执行完成后,低优先级的线程才能执行;但当高优先级的线程sleep(5000)后,低优先级就有机会执行了。
总之,sleep()可以使低优先级的线程得到执行的机会,当然也可以让同优先级、高优先级的线程有执行的机会。
2.join()
join()方法使调用该方法的线程在此之前执行完毕,也就是等待调用该方法的线程执行完毕后再往下继续执行。注意该方法也要捕获异常。
3.yield()
它与sleep()类似,只是不能由用户指定暂停多长时间,并且yield()方法只能让同优先级的线程有执行的机会。
- yield() sleep() wait() 区别
- wait、sleep、yield区别
- yield() sleep() wait() 区别
- yield() sleep()wait()区别
- Thread sleep, yield, wait区别
- java yield(),sleep(),wait() 区别
- wait/sleep/yield的区别
- sleep yield和 wait区别
- sleep, yield, wait的区别
- yield(),sleep()以及wait()的区别
- java之yield(),sleep(),wait()区别详解
- java之yield(),sleep(),wait()区别详解
- java之yield(),sleep(),wait()区别
- java之yield(),sleep(),wait()区别
- sleep,wait和yield的区别
- java之yield(),sleep(),wait()区别详解
- java之yield(),sleep(),wait()等区别
- java之yield(),sleep(),wait()区别详解
- 加速你的Hibernate引擎(上) .********************性能调优
- 联合国公布世界上最难学的十大语言
- MFC 单文档中添加按钮控件
- 《java程序员上班那些事》读书笔记2----关于在校在职的学习能力
- 加速你的Hibernate引擎(下) .****************性能调优
- yield() sleep() wait() 区别
- Ubuntu Skills
- XP下U盘安装CENTOS系统实现
- IEnumerable和IEnumerator 详解
- mysql group by 用法解析(详细)
- 非泛型集合类以及对应的泛型集合类【dictionary】
- 1129. ISBN
- html5 初试 indexedDB
- 实例讲解C语言OPEN函数语法及其应用