A 部分 – 多线程和线程同步 – Pthreads
Linux POSIX 线程 ( Pthreads )、线程同步、操作系统概念、项目 C/C++ 编程
讲师:Abhishek CSEPracticals
口袋资源独家Udemy付费课程,独家中英文字幕,配套资料齐全!
用不到1/10的价格,即可享受同样的高品质课程,且可以完全拥有,随时随地都可以任意观看和分享。
你将学到什么
- 多线程基础知识
- 并发性
- 互斥与原子性
- 线程同步技术
- 编写线程安全代码
- 互斥体、信号量
- 发信号和等待
- 面试问题
要求
- C语言是必须的
- Linux操作系统
- 热衷于学习和超越
- 热衷于编写大量代码
描述
欢迎来到多线程课程系列 – 线程大师班课程。
本课程适合那些想要了解多线程和相关概念的基本概念的人。在本课程中,我们将介绍 Linux 平台上基于 Pthreads(POSIX 线程)的多线程概念。
尽管我们使用 C 语言来演示这些概念,但概念适用于任何编程语言。本课程对于 C++ 程序员同样有价值。其他语言程序员也可能会发现本课程很有用,因为我们解释了接近零级无抽象的多线程概念。
我们将讨论多线程涉及的几个概念,并通过示例程序演示每个概念。几个重要的概念包括但不限于 –死锁、互斥、原子性、线程同步、竞争条件、线程分叉等等。
在本课程的下一部分中,我们将扩展多线程知识以扩展概念,包括有关多线程和线程同步的小型项目。
在本课程系列的每个阶段,您都将编写大量多线程代码。因此,请准备好掌握多线程。在此过程中,我们将介绍几个最受面试欢迎的主题和问题,帮助您为面试做好准备。
祝你好运!
目录:
= = = ======= = = =
1. 理解线程
- 线程创建和终止
- 线程创建时的竞争条件
- 将参数传递给线程函数
- 多线程程序的堆栈内存管理
- 线程调度
2. 理解并发和并行
- 单一性、并发性、并行性
- 并发流程设计 – 2 个示例
- 线程作为轻量级进程
- 重叠和非重叠工作
3. 可连接和分离的线程
- 可连接线程与分离线程
- 如何加入话题
- 加入谁?
- 示例 – Map-Reduce 程序
4. 线程间通信
- 了解回调和函数指针
- 实施 ITC 的最佳方式
- 实施通知链
- 发布者订阅者模型
- 如何订阅/取消订阅
- 如何向订阅者发送通知
5. 异步线程取消
- 线程取消
- 异步和延迟线程取消
- 异步线程取消的问题
- 资源泄漏
- 不变量
- 僵局
- 线程清理处理程序的概念
- 防止资源泄漏
- 数据结构损坏 – 不变量
- 取消导致死锁
6. 延期取消
- 了解延期取消
- 执行
7. 侦听器线程 – 责任委托
- 为什么是侦听器线程?
- 设计监听器线程
- 代码更改和演示
- 取消阻塞的线程
8. 线程同步
- 关键部分
- 互斥规则
- 互斥锁
- 互斥锁 – 代码锁定
- 互斥锁 – 数据锁定
- 基于互斥体的 API
- 互斥体的实际应用
9. 死锁
- 什么是死锁以及为什么会发生?
- 发生死锁的必要条件
- 互斥锁排序导致死锁
10. 条件变量
- 了解简历
- CV 与互斥锁
- 等待()和信号()
- 生产者-消费者线程同步
- 虚假唤醒
- 线程与资源特定的 CV
- 传播简历
- 实施生产者-消费者问题
11.哲学家就餐问题
- 问题描述
- 数据结构设置
- 作业程序设置
- 流程图/算法讨论
- 最终实施(逐步)
12. 信号量
- 介绍
- 信号量与互斥体
- 信号量如何工作
- 严格交替问题
- 信号量实现
- 信号量类型
- 强信号量和弱信号量
列出后续课程即将推出的高级多线程主题(正在进行中)
= = = = = = = = = = = = = = = = = = = = = =
1. 暂停和恢复线程
2. 线程池
3. 标准问题——读写器问题
4. 实现线程屏障
5. 实现线程监视器
6. 使用监视器解决同步问题
7. 死锁检测和预防
8. 等待队列
9. 使用线程实现定时器
10. 如何fork一个多线程进程
11. 使用命名信号量进行进程同步
快乐学习。
专题评论
这门课程太棒了。我很高兴讲师决定在 Udemy 上提供课程。首先,很难找到更高级主题的课程。作为一名软件开发人员,我热爱学习,但经常对 Udemy 拥有面向初学者的材料感到失望(这是可以理解的)。然后是 CSEPracticals 课程。我在这里学到了很多东西。这是一些有价值的、现实世界的东西。了解 C 语言的多线程如何实际应用于现实世界用例并自行实现这些用例非常有用。指示很明确,信息很有价值。代码示例很丰富。讲师显然对网络非常了解,因此课程示例往往倾向于这个方向。这门课程给我留下了深刻的印象,并且给我带来了很多乐趣。我迫不及待地想查看 CSEPracticals 的其他内容。
我刚刚完成这门课程,我不能再推荐它了。这是一门关于多线程的优秀课程,并且完全实现了它从一开始就打算实现的目标。本课程的一些特点 1)您编写了大量代码,并且您对使用 pthread 库变得更加自信(连同其他一些事情,我了解到正确使用断言函数是多么重要)。 2) Abishekh 深入研究了不同的同步方法,并表明您必须使用互斥锁和条件变量等基本工具来构建它们。这给了您很大的信心,如果您选择的操作系统或库没有内置这些,您可以在将来构建自己的操作系统或库。我认为这是该课程最大的优势。 3) CSE 实践团队的响应速度非常快,您可以在非常合理的时间内得到您的查询答复。现在正在进行课程续集。奥韦斯
本课程适合谁:
- 工程专业毕业生和研究生
- 在职专业人士和求职者
- 自由职业者、系统工程师、开发人员