高并发:线程、线程锁与线程池(精华),文中附上一个手写代码实现线程池视频(c/c++语言)

前文:

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

一、线程

1.线程的概念

 

高并发:线程、线程锁与线程池(精华),文中附上一个手写代码实现线程池视频(c/c++语言)_第1张图片

 

2.线程与进程的关系

 

高并发:线程、线程锁与线程池(精华),文中附上一个手写代码实现线程池视频(c/c++语言)_第2张图片

 

3.定义:

 

高并发:线程、线程锁与线程池(精华),文中附上一个手写代码实现线程池视频(c/c++语言)_第3张图片

 

区别:如上!!!

4.wait()和sleep()

 

高并发:线程、线程锁与线程池(精华),文中附上一个手写代码实现线程池视频(c/c++语言)_第4张图片

 

5.线程的状态及其他API

 

高并发:线程、线程锁与线程池(精华),文中附上一个手写代码实现线程池视频(c/c++语言)_第5张图片

这里分享一个手写代码实现线程池的视频,需要代码的朋友可以+主页qun获取

线程池视频链接:手写代码现实线程池

更多Linux服务器开发高级视频资料点击:C/C++Linux服务器开发架构师-学习视频教程

高并发:线程、线程锁与线程池(精华),文中附上一个手写代码实现线程池视频(c/c++语言)_第6张图片

二、线程锁

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

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

 

高并发:线程、线程锁与线程池(精华),文中附上一个手写代码实现线程池视频(c/c++语言)_第7张图片

 

2.Lock

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

(1)重入锁

 

高并发:线程、线程锁与线程池(精华),文中附上一个手写代码实现线程池视频(c/c++语言)_第8张图片

 

(2)读写分离锁

 

高并发:线程、线程锁与线程池(精华),文中附上一个手写代码实现线程池视频(c/c++语言)_第9张图片

 

区别:

 

高并发:线程、线程锁与线程池(精华),文中附上一个手写代码实现线程池视频(c/c++语言)_第10张图片

 

 

二、线程同步工具类

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

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

 

高并发:线程、线程锁与线程池(精华),文中附上一个手写代码实现线程池视频(c/c++语言)_第11张图片

 

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

 

高并发:线程、线程锁与线程池(精华),文中附上一个手写代码实现线程池视频(c/c++语言)_第12张图片

 

3.Exchanger交换机:交流数据

 

高并发:线程、线程锁与线程池(精华),文中附上一个手写代码实现线程池视频(c/c++语言)_第13张图片

 

4.信号量

(1)概念

 

高并发:线程、线程锁与线程池(精华),文中附上一个手写代码实现线程池视频(c/c++语言)_第14张图片

 

(2)应用场景一

 

高并发:线程、线程锁与线程池(精华),文中附上一个手写代码实现线程池视频(c/c++语言)_第15张图片

 

(3)应用场景二

 

高并发:线程、线程锁与线程池(精华),文中附上一个手写代码实现线程池视频(c/c++语言)_第16张图片

 

 

三、线程池

 

1.为什么使用线程池

 

 

2.线程池的核心队列

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

 

高并发:线程、线程锁与线程池(精华),文中附上一个手写代码实现线程池视频(c/c++语言)_第17张图片

 

3.手动创建线程池

 

高并发:线程、线程锁与线程池(精华),文中附上一个手写代码实现线程池视频(c/c++语言)_第18张图片

 

4.Executors工具创建线程

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

 

高并发:线程、线程锁与线程池(精华),文中附上一个手写代码实现线程池视频(c/c++语言)_第19张图片

 

定时线程:

 

高并发:线程、线程锁与线程池(精华),文中附上一个手写代码实现线程池视频(c/c++语言)_第20张图片

 

 

 

四、彩蛋图

 

高并发:线程、线程锁与线程池(精华),文中附上一个手写代码实现线程池视频(c/c++语言)_第21张图片

 

 

你可能感兴趣的:(Linux服务器开发,Linux后台开发,linux网络编程,多线程,线程池,c++,高并发,后端)