复习线程

1.进程

      定义:  进程就是一个程序在一个数据集上的一次动态执行过程。

 

  组成:  进程一般由程序、数据集、进程控制块三部分组成。

 

  程序:  我们编写的程序用来描述进程要完成哪些功能以及如何完成;

 

  数据集: 则是程序在执行过程中所需要使用的资源;

 

  进程控制块: 用来记录进程的外部特征,描述进程的执行变化过程,系统可以利用它来控制和管理进程,它是系统感知进程存在的唯一标志

 

2.线程

       线程的出现是为了降低上下文切换的消耗,提高系统的并发性,并突破一个进程只能干一样事的缺陷,使到进程内并发成为可能。

 

  线程也叫轻量级进程,它是一个基本的CPU执行单元,也是程序执行过程中的最小单元

 

    组成:由线程ID、程序计数器、寄存器集合和堆栈共同组成。

 

  线程的引入减小了程序并发执行时的开销,提高了操作系统的并发性能。线程没有自己的系统资源

 

3.线程与进程的区别

线程是执行的指令集 , 进程是资源的集合

线程的启动速度要比进程的启动速度要快

两个线程的执行速度是一样的

进程与线程的运行速度是没有可比性的

线程共享创建它的进程的内存空间 , 进程的内存是独立的

两个线程共享的数据都是同一份数据 , 两个子进程的数据不是共享的 , 而且数据是独立的

同一个进程的线程之间可以直接交流 , 同一个主进程的多个子进程之间是不可以进行交流 , 如果两个进程之间需要通信 , 就必须要通过一个中间代理来实现

一个新的线程很容易被创建 , 一个新的进程创建需要对父进程进行一次克隆

一个线程可以控制和操作同一个进程里的其他线程 , 线程与线程之间没有隶属关系 , 但是进程只能操作子进程

改变主线程 , 有可能会影响到其他线程的行为 , 但是对于父进程的修改是不会影响子进程

4.同步和异步

        同步就是指一个进程在执行某个请求的时候,若该请求需要一段时间才能返回信息,那么这个进程将会一直等待下去,直到收到返回信息才继续执行下去;

 

     异步是指进程不需要一直等下去,而是继续执行下面的操作,不管其他进程的状态。当有消息返回时系统会通知进程进行处理,这样可以提高执行的效率。

 

       举个例子,打电话时就是同步通信,发短息时就是异步通信

 

5.并行和并发

        并行指系统具有处理多个任务(动作)的能力

 

       并发是指系统具有同时处理多个任务(动作)的能力

 

 6.阻塞与非阻塞

        阻塞调用是指调用结果返回之前,当前线程会被挂起(如遇到io操作)。函数只有在得到结果之后才会将阻塞的线程激活。

 

        非阻塞和阻塞的概念相对应,指在不能立刻得到结果之前也会立刻返回,同时该函数不会阻塞当前线程

原文地址:https://www.cnblogs.com/yangli0504/p/9179398.html