C++多线程编程 --- [1] 并发的一点理解(concurrency)

最近在阅读《C++ Concurrency in Action, 2nd Edition》,记一点笔记


一 并发的实现

并发有2种实现方式:

  • 多进程:多个单线程进程
  • 多线程:单个进程里使用多个线程

以上这2种方式各有优缺点,多进程:

  • 优点:各个进程的数据不会互相干扰,安全性高
  • 缺点:多个进程需要更多开销;进程间通信实现麻烦且效率低

多线程:

  • 优点:资源开销少,访问共享数据速度快
  • 缺点:线程间共享地址空间,容易造成数据混乱,需要处理好多个线程访问同一数据的问题

大部分情况下,C++并发都是采用多线程,通过牺牲一定的安全性来换取更高的性能


二 何时使用并发

当有以下2种情况时,考虑使用并发:

  • 分割任务
  • 高性能

其它的情况都可以变成单线程来处理。

猜你喜欢

转载自blog.csdn.net/whahu1989/article/details/109788653