并发会有上下文切换,所以一定规模下不一定比串行快,来看一个比较:
1 | public class ConcurrencyTest { |
记得有个面试官问我一个CPU的话有没有必要写并发编程,我回答没必要。凸显了我的无知,我忘记了指令级别的优化,唉。
测试上下文切换
时长:Lmbench3
次数:vmstat
查看线程信息: jstack
查看死锁
1 | package chapter01; |
1 | $: pgrep java |
总结:避免死锁,减少上下文切换,根据资源限制(软、硬件)来控制并发。
并发会有上下文切换,所以一定规模下不一定比串行快,来看一个比较:
1 | public class ConcurrencyTest { |
记得有个面试官问我一个CPU的话有没有必要写并发编程,我回答没必要。凸显了我的无知,我忘记了指令级别的优化,唉。
测试上下文切换
时长:Lmbench3
次数:vmstat
查看线程信息: jstack
查看死锁
1 | package chapter01; |
1 | $: pgrep java |
总结:避免死锁,减少上下文切换,根据资源限制(软、硬件)来控制并发。