线程、线程锁与线程池粗解

103 阅读1分钟
  • [前文:]
  • [一、线程]
  • [二、线程锁]
  • [三、线程同步工具类]
  • [四、线程池]
  • [五、彩蛋图]

[前文:]

单线程——多线程的开启——线程锁——线程同步工具——手写连接池——连接池工具类。

[一、线程]

1.线程的概念

[图片]

2.线程与进程的关系

[图片]

3.定义:

[图片]

区别:如上!!!

4.wait()和sleep()

[图片]

5.线程的状态及其他API

[图片]

[二、线程锁]

线程并发同步时,引入了锁机制。

  1. 普通锁机制 :synchronized  修饰代码块与volatile  修饰成员变量

[图片]

  1. Lock

!!共同点:都是从外面创建锁类、再把锁传到线程里对变量对象赋值。

(1)重入锁

[图片]

(2)读写分离锁

[图片]

区别:

[图片]

[三、线程同步工具类]

!!共同点:都是从外面创建工具类、再把工具类的参数传到线程里面执行。

  1. CountDowmLatch闭锁:等待所有线程执行完

[图片]

  1. CyclicBarrier栅栏:等待所有线程达到后开启

[图片]

  1. Exchanger交换机:交流数据

[图片]

  1. 信号量

(1)概念

[图片]

(2)应用场景一

[图片] (3)应用场景二

[图片]

[四、线程池]

  1. 为什么使用线程池

[图片]

  1. 线程池的核心队列

阻塞式队列:只用于线程对象,主要用于引出线程池

[图片]

  1. 手动创建线程池

[图片]

  1. Executors工具创建线程

核心线程:0(临时线程)、1(队列)、N(队列)

[图片]

定时线程:

[图片]

[五、彩蛋图]

[图片]

原文地址:mp.weixin.qq.com/s/Yq5Fn0g9_…