JAVA scatter (转载自zooooooooy)

查看系统的线程上下文切换次数

使用vmstat 3
vmstat

其中cs就是context switch的次数,数值越高代表上线文切换的越频繁,耗时越多。每秒的切换次数可以和进程的总线程数进行比对,如果大于线程总数代表是满负荷运转


java 线程状态之间的跃迁
thread change

线程的各个状态及说明如下:

状态名称 说明
NEW 初始状态
RUNNABLE 运行状态
BLOCKED 阻塞状态
WAITING 等待状态
TIME_WAITING 超时等待状态
TERMINATED 终止状态

synchronized 关键字的使用场景

锁的方式 锁的对象 伪代码
实例方法 类的实例对象 public synchronized void method
静态方法 类对象 public synchronized static void method
实例对象 类的实例对象 synchronized (this)
class对象 类对象 synchronized (A.class)
普通对象 普通对象 synchronized (o)

mark 下 通过ReentrantLock中线程等待唤醒的状态跃迁
await|singal


java queue 方法

方法名称 说明 是否阻塞 是否抛出异常
add 插入
offer 插入
remove 删除
poll 删除
element 获取
peek 获取

blocking queue

方法名称 说明 是否阻塞 是否抛出异常
put 插入
offer 支持超时 插入
take 删除
poll 支持超时 删除