第一篇:认识并发
1.什么是并发?
在百度百科上对于并发的解释为:并发,在操作系统中,是指一个时间段中有几个程序都处于已启动和运行完毕之间,且这几个程序都是在同一个处理及上运行,但在任何一个时间刻点上只有一个程序在处理机上运行。
个人理解:并发是为了程序运行的更快,通过多线程执行任务达到快速运行目的。
2.线程、进程概念区别:
进程和线程都是一个时间段的描述,是CPU工作时间段的描述,只是颗粒大小不同。
相同点:进程和线程都有ID/寄存器组、状态和优先权、信息块,创建后都可更改自己的属性,都可与父进程共享资源、都不鞥直接访问其他无关进程或线程的资源。
不同点
比较点 | 进程 | 线程 |
定义 | 进程是执行中一段程序,一旦程序载入到内存中并准备执行,就是一个进程。打开QQ,打开一个进程。 | 单个进程中执行的每个任务就是一个进程。QQ中的文字传输,是一个进程 |
单位 | 资源分配的基本单位、调度运行的基本单位、 | 执行运算的基本单位 |
隶属 | 一个进程可以有多个线程 | 一个线程只属于一个进程 |
开销 | 进程创建、维护和管理的开销大 | 轻量化的进程开销小。 |
资源 | 进程拥有系统资源 | 同一进程里的所有线程共享进程里的内存和资源。 |
通信 | 父子进程采用进程间通信机制 | 同一进程间的线程通过读取和写入数据到进程进行通信。 |
销毁 | 进程销毁,进程内的线程同时销毁 |
进程内的所有线程可以看做同位体,处于相同级别。进程间线程可以操作进程间的其他线程。线程通过销毁主线程完成进程销毁。
|
控制 | 子进程不对其他子、父进程进行控制 |
进程中的线程可以控制同一进程内的所有线程。 |
3.单线程、多线程、并发、并行概念区别:
单线程:程序执行时,执行的程序路径是连续顺序的,必须前面的处理好,后面的才会执行。
例如:你早上上班,正要打卡的时候,手机响了。。你如果先接了电话,等接完了,在打卡,就是单线程。
多线程:一个进程中不只一个线程。在同一个时间段内可以做执行多个程序。
例如:你早上上班,正要打卡的时候,手机响了。。如果你一手接电话,一手打卡。就是多线程。
并发:系统中有多个任务同时存在,同一时间间隔两个或多个事件在发生。
并行:系统内多个任务同时执行,同一时刻两个或多个事件发生。
4.并发编程的有点和缺点
优点:
- 提高性能,发挥多核CPU强大功能 --发挥性能
- 异步处理简单 --不同线程,可以执行不一样操作
- 响应更加灵敏的界面 --多任务,无需等待某个线程执行完
缺点:
- 线程安全性 --死锁问题
- 线程活跃性 -- 线程优先级低的线程长时间得不到执行
- 执行性能 --优于线程间上下文切换,时间片轮转执行性能不一定比单线程块
作者:
i孤独行者
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。