目录

01. Linux线程概念

01.1 什么是线程

01.1.1 轻量级进程ID与进程ID之间的区别

01.1.2 总结(重点)

01.2 线程的优点

01.3 线程的缺点

01.4 线程异常

01.5 线程用途

02. Linux进程VS线程

02.1 进程和线程

02.2 关于多线程和多进程编程

03. Linux线程控制 -- POSIX线程库

03.01 POSIX线程库

03.02 pthread_create

​编辑

03.03 什么是LWP

03.04 LWP与pthread_create创建的线程之间的关系

03.05 pthread_join

03.06 Linux查看线程方式

03.07 关于C++线程使用

03.08 线程ID及进程地址空间布局

03.09 线程终止

03.10 pthread_exit

03.11 pthread_cancel

03.12 线程等待

03.13 分离线程

04. Linux线程互斥

04.1 进程线程间的互斥相关背景概念

什么是线程互斥,为什么需要互斥

04.2 互斥量mutex

并发编程中通常会遇到三个问题 原子性问题,可见性问题,有序性问题

04.3 互斥量的接口

初始化互斥量

销毁互斥量

互斥量加锁和解锁

调用 pthread_ lock 时,可能会遇到以下情况:

04.4 关于实现互斥锁

无锁化编程有哪些常见方法

05. 可重入VS线程安全

05.1 概念

05.2 常见的线程不安全的情况

05.3 常见的线程安全的情况

05.4 常见不可重入的情况

05.5 常见可重入的情况

05.6 可重入与线程安全联系

05.7 可重入与线程安全区别

06. 常见锁概念

06.1 死锁

06.2 死锁四个必要条件

06.3 避免死锁

06.4 死锁的处理都有哪些方法

07. Linux线程同步

07.1 条件变量

信号量实现与条件变量有什么区别

07.2 同步概念与竞态条件

07.3 条件变量函数

初始化

销毁

等待条件满足

唤醒等待

为什么 pthread_cond_wait 需要互斥量?

08. 生产者消费者模型

08.1 为何要使用生产者消费者模型

08.2 生产者消费者模型优点

08.3 基于BlockingQueue的生产者消费者模型

09. POSIX信号量

09.1 概念

09.2 信号量函数

初始化信号量

销毁信号量

等待信号量

发布信号量

基于环形队列的生产消费模型

10. 线程池

10.1 概念

10.2 线程池的应用场景

10.3 线程池的作用及实现原理

10.4 线程池的关键参数

10.5 线程池示例

Task.hpp

ThreadPool.hpp

main.cpp


C语言总结在这常见八大排序在这

作者和朋友建立的社区:非科班转码社区-CSDN社区云

Linux 多线程(附带线程池代码加注释)相关推荐

  1. 深入浅出吃透多线程、线程池核心原理及代码详解

    一.多线程详解 1.什么是线程 线程是一个操作系统概念.操作系统负责这个线程的创建.挂起.运行.阻塞和终结操作.而操作系统创建线程.切换线程状态.终结线程都要进行CPU调度--这是一个耗费时间和系统资 ...

  2. Java基础巩固(二)异常,多线程,线程池,IO流,Properties集合,IO工具类,字符流,对象流,Stream,Lambda表达式

    一.异常,多线程 学习目标 : 异常的概述 异常的分类 异常的处理方式 自定义异常 多线程入门 1 异常的概述 1.1 什么是异常? 异常就是程序出现了不正常情况 , 程序在执行过程中 , 数据导致程 ...

  3. java同步锁售票_Java基础学习笔记: 多线程,线程池,同步锁(Lock,synchronized )(Thread类,ExecutorService ,Future类)(卖火车票案例)...

    学习多线程之前,我们先要了解几个关于多线程有关的概念. 进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能. 线程:线程是 ...

  4. 多线程之线程池-各个参数的含义- 阿里,美团,京东面试题目

    阿里的面试官问了个问题,如果corepollSize=10,MaxPollSize=20,如果来了25个线程 怎么办, 答案: 当一个任务通过execute(Runnable)方法欲添加到线程池时: ...

  5. java 多线程使用线程池_Java多线程:如何开始使用线程

    java 多线程使用线程池 什么是线程? (What is a Thread?) A thread is a lightweight process. Any process can have mul ...

  6. 3、Linux多线程,线程同步(转)

    3.Linux多线程,线程同步 5)线程私有数据 进程内的所有线程共享进程的数据空间,因此全局变量为所有线程所共有.但有时线程也需要保存自己的私有数据,这时可以创建线程私有数据(Thread-spec ...

  7. C#多线程之线程池篇1

    在C#多线程之线程池篇中,我们将学习多线程访问共享资源的一些通用的技术,我们将学习到以下知识点: 在线程池中调用委托 在线程池中执行异步操作 线程池和并行度 实现取消选项 使用等待句柄和超时 使用计时 ...

  8. C++多线程以及线程池

    1 线程 1.1 简介   线程(英语:thread)是操作系统能够进行运算调度的最小单位.大部分情况下,它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程 ...

  9. Linux多线程编程---线程间同步(互斥锁、条件变量、信号量和读写锁)

    本篇博文转自http://zhangxiaoya.github.io/2015/05/15/multi-thread-of-c-program-language-on-linux/ Linux下提供了 ...

最新文章

  1. Thinkpad F2不能进行重命名的问题
  2. 聊聊自驱团队的构建(四)
  3. 《MySQL——关于grant赋权以及flush privileges》
  4. IRF之LACP-MAD检测
  5. Android开发-无法新建Activity及新建后编译错误
  6. modbus tcp主站和从站_实例讲解PLC实现modbus通讯
  7. Telerik UI for Xamarin使用教程 - AndroidX使用指南
  8. 加密狗工作原理和破解方法简介
  9. 360安卓_360手机助手安卓下载
  10. 网页加速之Chromium 预加载 Prerendering
  11. Fullcalendar 日历控件的基本使用
  12. SQLDBX找不到服务器 no server found
  13. 微信公众号文字该如何排版?
  14. dcloud wap2app上架应用宝过审方法
  15. php获取客户端真实ip
  16. mysql 省市县镇(乡)四级地区数据库
  17. UnityShader学习笔记 Unity的表面着色器
  18. 对Simulink模型进行保护的方法
  19. ardupilot 震动测量(Measuring Vibration)
  20. php数字转人民币,php人民币数字转大写数字的简单示例

热门文章

  1. TM4C123GXL_PWM
  2. springboot和springcloud功能详细介绍
  3. K近邻(k-Nearest Neighbor,KNN)算法,一种基于实例的学习方法
  4. 【基础知识】HTML5 Canvas小项目时钟的简单实现(图文、演示)
  5. 音视频算法在淘宝中的应用
  6. Spring AOP
  7. 描述统计学(二):汇总两个变量数据间关系
  8. insert table mysql_MYSQL insert data(如何插入数据到table)
  9. python url转码_Python如何实现转换URL详解
  10. 简单的nodejs+socket.io给指定的人发送消息