目录
1.尽量使用本地变量
- 尽量使用本地变量,而不是创建一个类或实例的变量。
- 定义在函数内部的变量就是本地变量;
2.尽量使用不可变类
- String、Integer等。不可变类可以降低代码中需要的同步数量;
3. 最小化锁的作用域范围:S=1/(1-a+a/n)
该公式称为:“阿姆达尔定律"或"安达尔定理”。 其中:a
:并行计算部分所占比例;n
:并行处理结点个数;S
:加速比;
- 当
1-a
等于0时,没有串行只有并行,最大加速比S=n
; - 当
a=0
时,只有串行没有并行,最小加速比S = 1
; - 当
n→∞
时,极限加速比s→ 1/(1-a)
,即加速比的上限;
例如,若串行代码占整个代码的25%,则并行处理的总体性能不可能超过4。
4.创建线程,尽量使用线程池的Executor
,而不是直接new Thread
执行
- 创建一