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 实践团队的响应速度非常快,您可以在非常合理的时间内得到您的查询答复。现在正在进行课程续集。奥韦斯

本课程适合谁:

  • 工程专业毕业生和研究生
  • 在职专业人士和求职者
  • 自由职业者、系统工程师、开发人员

发表回复

后才能评论

  • 每一个课程页面,都有演示地址选项,点击链接可以跳转到课程发布网站查看详细课程列表。
  • 绝大部分课程都有试看内容,可以先点击试看,再决定是否购买。
  • 本站课程均存储在阿里云盘或百度网盘中,由于阿里云盘对分享的文件类型有限制,所以课程资料和字幕会存储到蓝奏云盘中。
  • 阿里云盘和蓝奏云盘都是不限速下载的,你既可以选择在阿里云盘中在线学习,也可以选择下载到本地学习。
  • 课程下载到本地可以挂载中英文双字幕,请点击查看Potplayer挂载中英文双字幕教程
  • 本站所有课程,均提供mp4格式视频文件,中英文双字幕,配套资料齐全,不加密。
  • 每一个课程右侧下载面板中,都会有清晰度标识,大部分都是1080P或者720P,还有少数是超高清的。
  • 本站课程购买之后,均可以免费更新,所有课程,皆配有中文字幕。
  • 请注意,课程的中文字幕是根据英文字幕用谷歌翻译生成的,本非人工翻译。谷歌翻译准确度尚可,学习观看,没有问题。
  • 由于数字资源具有可复制性,一旦购买,不接受退款要求,请在购买之前,认真了解课程内容,确定是否需要。
  • 当然,如果有特殊情况,可以查看网站底部联系方式,联系站长说明问题,我会为你妥善处理。
  • 赞助本站VIP会员,可以免费下载所有课程,详情请查看VIP介绍