⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 blog.csdn.net/weixin_42687074/article/details/89385333 「CesarChoy」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注**微信公众号:【芋道源码】**有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言将得到认真回复。甚至不知道如何读源码也可以请教噢
  4. 新的源码解析文章实时收到通知。每周更新一篇左右
  5. 认真的源码交流微信群。

前文:

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

一、线程

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(队列)

定时线程:

五、彩蛋图

文章目录
  1. 1. 前文:
  2. 2. 一、线程
  3. 3. 二、线程锁
  4. 4. 三、线程同步工具类
  5. 5. 四、线程池
  6. 6. 五、彩蛋图