首先,我们先理解并发和并行的区别。

你吃饭吃到一半,电话来了,你一直到吃完了以后才去接,这就说明你不支持并发也不支持并行。

你吃饭吃到一半,电话来了,你停了下来接了电话,接完后继续吃饭,这说明你支持并发。
你吃饭吃到一半,电话来了,你一边打电话一边吃饭,这说明你支持并行。

并发的关键是你有处理多个任务的能力,不一定要同时。
并行的关键是你有同时处理多个任务的能力。

所以我认为它们最关键的点就是:是否是『同时』。

  如上所示,并发可以理解为在同一时间段内发生,而并行是指两个事件的发生是处于平行状态的,即同时发生的。

  我们知道JavaScript是不支持多线程的,而python、php、java等是支持多线程的,同样,c++也是支持多线程编程的。

  在c++11中,有下面的头文件是用来支持多线程编程的:

  • <atomic>: 该头文件声明了两个类,即std::atomic以及st::atomic_flag。
  • <thread>:  该头文件主要声明了std::thread类。
  • <mutex>: 中文是互斥量的意思。该头文件中主要声明了与互斥量(mutex)相关的类,比如std::lock_gruad以及std::unique_lock等,以及其他的类型和函数。
  • <condition_variable>: 该头文件声明了与条件变量相关的类,包括std::condition_variable以及std::condition_variable_any。
  • <future>: 该头文件主要声明了std::promise,std::package_task两个Provider类以及std::future和std::shared_future类,另外还有一些与之相关的类型和函数,std::async()函数就声明在这个头文件中。

  

  

最新文章

  1. HK&amp;&amp;CC JS学习:第一周——NO.2this
  2. PHP无限极分类
  3. php翻页
  4. Linux_VPN—pptpd构架方法
  5. Dynamic CRM 2013学习笔记(二十一)自定义审批流2 - 配置按钮
  6. [原创]android自定义动画的一点感悟
  7. Jar mismatch! Fix your dependencies
  8. ERROR 1201 (HY000) Could not initialize master info structure
  9. Docker基础技术:AUFS
  10. echars3.0 柱状图大小设置
  11. 在linux下配置Nginx+Java+PHP的环境
  12. uva 1335 - Beijing Guards(二分)
  13. EL&amp;&amp;JSTL
  14. Spring基础复习
  15. Day8 接口与归一化设计
  16. centos 6.5升级内核到3.1
  17. js处理时间时区问题
  18. python 带正则的search 模块
  19. Sql 通过表名查找所有列名
  20. 使用tensorflow的lstm网络进行时间序列预测

热门文章

  1. ubuntu6.4系统安装JIRA-7.8
  2. canvas(二) lineCap demo
  3. 一个域名下多个Vue项目
  4. 在WIN10上安装ESXI-Comstomer (转自技术社区)
  5. gitlab 10安装
  6. java多线程系列13 设计模式 Future 模式
  7. 第二阶段第一次spring会议
  8. ----关于css中常见单位----
  9. 走进JDK(七)------LinkedList
  10. Hiberbate注解