最近简单学习了一下C++多线程的使用,有一些很有帮助的学习链接:
入门概念
这篇博客讲的不错,放下链接
https://www.cnblogs.com/wangguchangqing/p/6134635.html
练习
然后在leetcode做了多线程的相关编程题,有两个觉得非常有助于入门的解答,这里也放一下链接:
首先是简单题1114. 按序打印,重在概念理解
题解:https://leetcode-cn.com/problems/print-in-order/solution/c-hu-chi-suo-tiao-jian-bian-liang-xin-hao-liang-yi/
这个解答用了五种方式, 互斥锁 条件变量 信号量 异步操作 原子操作,非常有助于理解概念。
其次是中等常见题1226. 哲学家进餐,重在死锁问题
题解:https://leetcode-cn.com/problems/the-dining-philosophers/solution/zhe-xue-jia-jiu-can-wen-ti-by-mike-meng/
以及用到C++17的scpoed_lock解决死锁问题的解答:
https://leetcode-cn.com/problems/the-dining-philosophers/solution/c11-yao-ma-fan-yi-dian-c17jiu-jian-dan-duo-liao-zh/