1、并行计算在图像处理和服务端编程两个领域应用广泛。
2、使用并行的原因有:
1)提高性能
2)将没有业务关联的代码分离为不同的的线程
3、摩尔定律失效,CPU主频的提升遇到瓶劲。往多核发展
4、同步、异步
5、并发、并行
6、阻塞与非阻塞
7、死锁、饥饿(低优先级)、活锁(大家都谦让)
8、java内存模型:
1)原子性
32位系统中long类型的读写不是原子性的,因为long有64位,
2)可见性
volitile解决的就是可见性的问题。
3)有序性
单线程执行代码是从前往后,并发时可能会指令重排序。
9、指令重排是为了尽量少的中断流水线。
10、哪些指令不能重排
1)volatile:写先于读
2)构造函数结束一定发生在兑现finalizer之前。