Netty的并发编程实践5:不要依赖线程优先级
2015-06-02 09:25
274 查看
当有多个线程同时运行的时候,由线程调度器来决定哪些线程运行、哪些等待以及线程切换的时间点,由于各个操作系统的线程调度器实现大相径庭,因此,依赖JDK自带的线程优先级来设置线程优先级策略的方法是错误和非平台可移植的。所以,在任何情况下,程序都不能依赖JDK自带的线程优先级来保证执行顺序、比例和策略。
Netty中默认的线程工厂实现类,开放了包含设置线程优先级字段的构造函数。这是个错误的决定,对于使用者来说,既然JDK类库提供了优先级字段,就会本能地认为它被正确地执行,但实际上JDK的线程优先级是无法跨平台正确运行的。图21-23提供了一个线程优先级的反面示例。
图21-23 线程优先级的反面示例
Netty中默认的线程工厂实现类,开放了包含设置线程优先级字段的构造函数。这是个错误的决定,对于使用者来说,既然JDK类库提供了优先级字段,就会本能地认为它被正确地执行,但实际上JDK的线程优先级是无法跨平台正确运行的。图21-23提供了一个线程优先级的反面示例。
图21-23 线程优先级的反面示例
相关文章推荐
- Spring.Net 配置文件
- Asp.Net MVC3 简单入门详解过滤器Filter(身份验证、缓存、防盗链、国际化等)
- Asp.Net 用户验证(自定义IPrincipal和IIdentity)
- Spring Roo 实站( 一 )部署安装 & 第一个示例程序
- java实现在线用户统计
- C#单例模式:GetInstance()
- ASP.NET MVC公共模板、节、分部视图等
- ASP.NET MVC异步加载分部视图
- C#小技巧总结
- myeclipse自定义java注释
- C、C++面试题目的总结
- Asp.Net MVC之ViewData字典与ViewModel模式
- EntityModel、DomainModel和ViewModel代码实例讲解
- ASP.NET MVC中ActionResult返回值
- C#中Enum,Int,String的互相转换 枚举转换
- Eclipse-----快速打开当前工程目录 浏览文件插件 EasyExplorer 和 OpenExplorer
- Spring Roo 实站( 一 )部署安装 & 第一个示例程序
- ASP.NET MVC Razor视图引擎攻略
- 在ASP.NET MVC中实现大文件异步上传
- C#获取项目程序及运行路径的方法