第一篇:认识并发

1.什么是并发?

  在百度百科上对于并发的解释为:并发,在操作系统中,是指一个时间段中有几个程序都处于已启动和运行完毕之间,且这几个程序都是在同一个处理及上运行,但在任何一个时间刻点上只有一个程序在处理机上运行。

    个人理解:并发是为了程序运行的更快,通过多线程执行任务达到快速运行目的。

2.线程、进程概念区别:

    进程和线程都是一个时间段的描述,是CPU工作时间段的描述,只是颗粒大小不同。

        相同点:进程和线程都有ID/寄存器组、状态和优先权、信息块,创建后都可更改自己的属性,都可与父进程共享资源、都不鞥直接访问其他无关进程或线程的资源。

        不同点

比较点                         进程                              线程
定义 进程是执行中一段程序,一旦程序载入到内存中并准备执行,就是一个进程。打开QQ,打开一个进程。 单个进程中执行的每个任务就是一个进程。QQ中的文字传输,是一个进程
单位                                 资源分配的基本单位、调度运行的基本单位、                             执行运算的基本单位
隶属                                 一个进程可以有多个线程                             一个线程只属于一个进程
开销                                进程创建、维护和管理的开销大                              轻量化的进程开销小。

资源                               进程拥有系统资源                    同一进程里的所有线程共享进程里的内存和资源。
通信                          父子进程采用进程间通信机制                  同一进程间的线程通过读取和写入数据到进程进行通信。
销毁                           进程销毁,进程内的线程同时销毁

进程内的所有线程可以看做同位体,处于相同级别。进程间线程可以操作进程间的其他线程。线程通过销毁主线程完成进程销毁。

 

控制                           子进程不对其他子、父进程进行控制

                      进程中的线程可以控制同一进程内的所有线程。

3.单线程、多线程、并发、并行概念区别:

    单线程:程序执行时,执行的程序路径是连续顺序的,必须前面的处理好,后面的才会执行。

     例如:你早上上班,正要打卡的时候,手机响了。。你如果先接了电话,等接完了,在打卡,就是单线程。

    多线程:一个进程中不只一个线程。在同一个时间段内可以做执行多个程序。

        例如:你早上上班,正要打卡的时候,手机响了。。如果你一手接电话,一手打卡。就是多线程。

    并发:系统中有多个任务同时存在,同一时间间隔两个或多个事件在发生。

    并行:系统内多个任务同时执行,同一时刻两个或多个事件发生。

4.并发编程的有点和缺点

    优点:

  1. 提高性能,发挥多核CPU强大功能  --发挥性能
  2. 异步处理简单  --不同线程,可以执行不一样操作
  3. 响应更加灵敏的界面 --多任务,无需等待某个线程执行完

    缺点:

  1. 线程安全性  --死锁问题
  2. 线程活跃性  --  线程优先级低的线程长时间得不到执行
  3. 执行性能  --优于线程间上下文切换,时间片轮转执行性能不一定比单线程块

 

posted @ 2018-09-05 18:26  i孤独行者  阅读(360)  评论(0编辑  收藏  举报