JAVA并发分工原则
来源:互联网 发布:ios中多线程编程 编辑:程序博客网 时间:2024/05/18 02:03
书上研究了两类应用程序:
一类是IO密集型的:书上指出IO密集型的应用程序的阻塞系数很大(因此执行任务时候阻塞的时间往往很大,因此可以创建更多的线程),合理创建线程的数量为:
线程数 = CPU / (1 - 阻塞系数) CPU的核数可以通过Runtime.getRuntime().availableProcessor()来获取。
第二类是计算密集型的:书上指出计算密集型的应用程序的阻塞系数为零,因此,创建的线程数最好是CPU的核数(不多不少最好),少了CPU有的处于空闲状态,多了因切换频繁耗费时间。
创建线程用Callable泛型接口与ExecutorSerivce接口搭配,并通过Future<V>来获得得到执行结果。
Callable<V>需要重写call方法,call方法有返回值,不像Runnable接口的run方法没有返回值,然后通过ExecutorService 中的方法(submit、invokeAll)调度任务开启线程,其返回的是List<Future<V>>,注意Future的泛型必须与Callable的泛型一样。
0 0
- JAVA并发分工原则
- 并发策略之分工原则
- java并发编码原则
- Java并发编程设计原则与模式
- 分工
- 分工
- 分工
- 分工
- Java并发编程系列之五:happens-before原则
- Java并发编程系列之四:happens-before原则
- 并发-CAS原则
- JAVA软件开发的人员分工问题(试想)
- java原则
- java并发--并发集合
- Java 并发:并发背景
- Java 并发:并发背景
- java设计原则---开闭原则
- Team分工
- hpuoj 1287 HH实习
- c3p0、dbcp和proxool比较
- poj 2553 The Bottom of a Graph
- Android ListView 常见问题与使用总结
- C++ RTTI及“反射”技术
- JAVA并发分工原则
- IKAnalyzer 配置扩展词典
- 一年之计在于春-2015年两会-人民银行行长周小川答记者问
- 必须知道的10个不常用HTML标签
- @html.ActionLink的几种参数格式
- 新年计划
- 10 --> java 方法的声明及使用
- segment Tree
- 什么是PendSV