第一章 并发编程的挑战

并发编程相对于单线程的挑战有

  • 上下文切换
  • 死锁

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)

你可能感兴趣的:(第一章 并发编程的挑战)