C++的并发世界
主要内容:
- 什么是并发和多线程?
- 为什么用并发和多线程?
- 如何用并发和多线程?
什么是并发?
两个或更多独立的活动同时进行。在计算机领域中表现为:单个系统中同时执行多个独立的任务。
单核任务切换VS多核硬件并发
- 单核任务切换
- 多核硬件并发
多进程并发
独立进程可通过进程间常规的通信渠道传递信息(信号、套接字、文件、管道等等)。
缺点之一:运行进程所需的固定开销:需要时间启动进程,操作系统需要内部资源来管理进程等等。
独立进程实现并发的额外优势:可通过远程连接在不同的机器上运行独立的进程。
多线程并发
每个线程相互独立运行,并共享地址空间,因此线程可以通过共享内存进行通信。
如果数据要被多个线程访问,那么必须保证每个线程所访问到的数据是一致的