0%

线程优化

线程优化

减少上下文切换次数

在写项目时其实并不是线程越多越好,因为系统就只有那么几个CPU,线程过多的话会使得上下文切换次数过多,可以通过减少不用的线程来减少上下文切换次数

操作步骤

获取快照
1
jstack 29784 > ./console-dump
查看线程状态
1
2
3
4
5
6
7
8
grep java.lang.Thread.State console-dump | awk '{print $2$3$4$5}' | sort | uniq -c

29 RUNNABLE
2 TIMED_WAITING(onobjectmonitor)
5 TIMED_WAITING(parking)
3 TIMED_WAITING(sleeping)
2 WAITING(onobjectmonitor)
25 WAITING(parking)
查看dump中WAITING(onobjectmonitor)的线程
1
cat console-dump |  grep -10 'WAITING'

可以减少对应应用服务器的线程数