人工精选4.5.C++并发编程
值不值得学:先搞清楚多线程在实际工作里到底用来干什么 很多C++岗位的日常开发,并不是天天写底层调度器,而是处理一类具体问题:主线程在收发网络数据,后台还要同时算指标、写日志、刷新界面,总不能让界面卡死。并发编程解决的就是这种多任务并行和资源争抢的场景。这套资料从POSIX线程的接口讲起,再过渡到C
会员 · 按档位
游客按标价购买,不享受上表折扣。
支付成功后自动发放网盘链接,链接失效可找客服免费补
值不值得学:先搞清楚多线程在实际工作里到底用来干什么
很多C++岗位的日常开发,并不是天天写底层调度器,而是处理一类具体问题:主线程在收发网络数据,后台还要同时算指标、写日志、刷新界面,总不能让界面卡死。并发编程解决的就是这种多任务并行和资源争抢的场景。这套资料从POSIX线程的接口讲起,再过渡到C++标准库的线程工具,路线比较务实。如果你只是写单进程的脚本或者纯算法题,暂时用不上;但只要你做后端服务、音视频处理、客户端开发,或者准备去对底层有要求的公司,这部分内容属于基本盘,迟早要补上。
适合什么基础,学完能独立做什么
这套内容默认你已经熟悉C++基本语法,能独立写完一两百行的程序,知道指针和引用的区别。它不适合刚学完C++入门语法的人直接硬啃,否则遇到编译报错会卡壳。学完之后,你应该能独立完成几件事:给现有的单线程程序拆分出工作线程,用互斥锁保护共享队列,用条件变量控制生产者和消费者的节奏,以及用标准库的异步机制拿到子线程的返回值。这对应到实际工作里,就是给一个日志模块加上异步写入,或者给网络模块拆分出独立的收发线程,不至于让主业务阻塞。
建议先看哪几块,资料怎么配合练习
建议先看基础概念、互斥锁、条件变量和标准库线程这几块,这几部分是日常用得最多的。读写锁和非阻塞锁等内容可以放到第二遍再看。资料配合练习的方法很简单:每看完一种同步机制,先暂停视频,自己写一个极简的生产者消费者模型。比如起两个线程,一个往队列塞数据,一个取数据,先不加锁跑出错误,再加上互斥锁看现象变化,最后换成条件变量优化轮询。代码不用长,几十行就够。把编译和运行结果对照着看,比连续刷完所有视频有效得多。遇到标准库异步机制那部分,同样自己写个返回整数的例子,手动调一次等待接口,弄懂它和直接传回调的区别。这样过一遍,到了工作里遇到多线程的模块,至少能看懂别人为什么要加锁,以及哪里可能会死锁。
掌握C++的并发编程和线程同步技术,如pthread、std::thread、mutex等
课程目录
* 01 4.5.1.并发编程相关的基础概念
* 02 4.5.2.pthread线程使用讲解和实战1
* 03 4.5.3.pthread线程使用讲解和实战2
* 04 4.5.4.pthread线程分离和线程属性1
* 05 4.5.5.pthread线程分离和线程属性2
* 06 4.5.6.线程的同步之互斥锁
* 07 4.5.7.读写锁和非阻塞式锁
* 08 4.5.8.线程的同步之条件变量1
* 09 4.5.9.线程的同步之条件变量2
* 10 4.5.10.标准库的thread基本使用1
* 11 4.5.11.标准库的thread基本使用2
* 12 4.5.12.thread的线程同步
* 13 4.5.13.thread的异步机制future1
* 14 4.5.14.thread的异步机制future2
* 15 4.5.15.C++20新引入的jthread





