并发编程相对于单线程的挑战有
- 上下文切换
- 死锁
1.常用工具
使用Lmbench可以测试上下文切换时长
使用vmstat可以测量上下文切换次数
1.1 上下文切换
常见问题
程序多线程运行一定比单线程块嘛?vm
1.1.3 减少上下文切换方法
-无锁并发编程
- CAS算法
-使用协程
-使用最少线程
>>>jps -mv
>>>jstack -l 18416>/tmp/my/thread_dump.log
>>>grep 'java.lang.Thread.State' thread_dump.log|awk '{print $2$3$4$5}'|sort|uniq -c
8 RUNNABLE
2 WAITING(onobjectmonitor)