Java多线程初探

本文列举了Java多线程相关的一些重要概念,作为后续系列文章索引。

Linux锁机制对比

  • spinlock: 自旋锁,CPU自旋等待获得锁,运行机制CAS (Compare and Swap)
  • mutex: 互斥锁,线程sleep等待锁
  • semaphore:信号量,同步机制,如果信号量的值为1,则效果与mutex相同。如果信号量为2则可以同时让两个线程访问资源
    参考:spinlock、semaphore和mutex的区别

JAVA原子类与CAS

JAVA synchronize关键字与Lock

JAVA信号量

Java多线程实现原理

  • volatile关键字
  • AQS

volatile 关键字

作用:

  • 内存可见性
  • happens-before

AQS

参考:

  • https://juejin.im/post/5ba66f426fb9a05cfd27d5b7
  • https://www.jianshu.com/p/a533cbb740c6

你可能感兴趣的:(Java多线程初探)