几个重要概念
同步和异步
并发和并行
临界区
阻塞和非阻塞
锁、死锁、饥饿、活锁
并行的级别:阻塞>>非阻塞(无锁>无障碍>无等待)
并行相关定律:
阿姆达尔定律,加速比定义 1/(F+1/n*(1-F)) F为串行比例,N为处理器个数
古斯塔夫森定律,加速比定义 n-F(n-1)
==========================================
线程和进程
线程的基本状态:运行runnable,阻塞blocked,等待(无限等待waiting,有限等待timed waiting),终结terminated
创建线程的两种方式
new Thread(new a[继承runnable接口]).start();
new Thread(){
@Override
public void run(){
do some thing……
}
}; target.start();
线程的终止
stop() 强制结束
interrupt() 中断线程[更改线程标识,可通过isInterrupt去判断]
线程的挂起suspend和继续执行resume
等待线程结束join(本质是wait,执行完会notifyAll)和谦让yeild
守护线程:垃圾回收线程、JIT线程
线程优先级
线程同步synchronized
================================================
无锁 CAS算法
AtomoicInteger
unsafe
atomoicReference
atomoicStampedReference
atomicIntegerArray
atomicIntegerFieldUpdater
atomicVorcter