C++11 并发与多线程(一、基本概念)

  • 时间:
  • 来源:互联网
  • 文章标签:
一、并发,进程,线程的基本概念
  1. 并发:两个或者更多任务(独立的活动)同时发生(进行):一个程序同时执行多个独立的任务(使用并发的原因:主要就是同时可以干多个事,提高性能)
  2. 进程:就是运行起来的可执行程序
  3. 线程:代码执行的另一条通路,每个进程都有一个主线程,并且主线程唯一(主线程和进程同在),线程并不是越多越好,每个线程都需要一个独立的空间,线程之间的切换要保存很多的中间状态
二、并发的两种方式
  1. 多进程并发:进程间通讯(同一台电脑上:管道,文件,消息队列,共享内存;不在同一台电脑上:socket通讯)
  2. 多线程并发:单个进程中,创建了多个线程(感觉像轻量级的进程),每个线程都有自己独立运行的路径,但是一个进程中的所有线程共享地址空间(共享内存),所以 全局变量,指针,引用都可以在线程之间传递,导致多线程开销远远小于多进程

多进程并发和多线程并发虽然可以混合使用,但建议优先考虑多线程技术

三、线程和进程优缺点比较
1. 优点
  1. 线程启动速度更快,线程被认为是更轻量级
  2. 线程的开销更低,通过共享内存的方式进行通讯比进程间通讯速度更快
2. 缺点
  1. 使用起来有一定难度,小心处理数据的一致性
  2. 不能在分布式系统下运行,进程则可以
四、C++11新标准线程库
  1. C++语言本身增加对多线程的支持,意味着可移植性(跨平台),大大减少程序员开发量;老式创建线程不支持跨平台

本文链接http://www.taodudu.cc/news/show-82984.html