ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Lesson 1 并发基本概念及其实现

2019-02-28 17:48:54  阅读:198  来源: 互联网

标签:需要 实现 并发 线程 切换 进程 Lesson 基本概念


一、进程和线程

进程是一个运行起来的可执行程序。进程有三种状态:

  • 就绪 进程获得了除了CPU外所有必要资源
  • 运行 进程获得了所有资源,开始执行
  • 阻塞 进程正在尚未满足要求,正在等待

线程是程序执行流的最小单位(要执行,最起码是一个线程)

二、线程和进程的联系和线程一些常识

2.1 线程和进程之间的联系

  • 进程必有唯一的主线程
  • 进程和主线程同时创建同时结束
  • 线程切换要比进程切换要快

2.2 线程的几点常识

  • 线程不是越多越好(200-300最佳)
  • 线程需要独立的堆栈空间,但没有自己独立地址
  • 线程切换比进程切换要快

线程需要独立的堆栈空间用于切换时的中间状态。

三、并发和并行

3.1 并发

并发是多个执行主体需要去做一件事情,但是资源只有一个。它需要解决的问题是竞争和同步的问题。

3.2 并行

并行是多个执行主体需要去做一件事情,每个执行主体各自拥有自己的资源。它们之间互不干扰。

四、并发的实现方法

4.1 多个进程实现并发

对于同一个电脑,可以通过管道、文件、消息队列和共享内存实现。对于不同电脑:用socket通信技术实现

4.2 多个线程实现并发

线程之间共享数据,通信简单,系统开销小。但是它带了数据需要同步的问题。

五、C++11线程库实现并发

不同系统的线程创建都不一样,跨平台不方便,虽然有POSIX thread(pthread),但是还是需要配置。C++11标准解决了这个问题。

标签:需要,实现,并发,线程,切换,进程,Lesson,基本概念
来源: https://blog.csdn.net/weixin_39258979/article/details/88038493

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有