这篇是多线程编程系列的总结篇,复盘一下前面讲到的多线程的各个知识点。要想成为一个优秀程序员,多线程编程是永远也绕不开的话题,必须要掌握,不同的语言实现多线程的方式都各不相同,但原理都是相通的。
为何需要多线程,因为要充分利用CPU的性能,特别是多核CPU,提升效率,提高用户体验。
早期的C 在语言级别上并不支持多线程,要实现多项只能依靠不同系统多线程函数,这给C 多线程编程带来了一定的麻烦。但在C 11开始,C 正式的支持了多线程编程。
那么在多线程编程中需要考虑哪些问题呢?需要注意到的点是哪些呢?在多核CPU下,多线程是并发执行的,那么产生了死锁的话又该怎么处理呢?在线程非常多的情况下,如何有效管理各个线程呢?如何要保证线程的执行顺利,又该如何实现呢?
这些问题都必须是多线程编程中必须要考虑的,无论是用什么语言实现的,这些都是要处理的。
在《C 11多线程编程》系列中,我大概的都把上面提到的这些问题讲到了,从互斥锁mutex开始,线程池、原子操作、信号量、死锁等等,我能够想到的大部分都见到了。但是讲的肯定不够深入,如果有些错误肯定也是难免的,有发现错误的童鞋欢迎指出。