16--API-多线程-->进程和线程

多线程

多线程是为了解决 提高程序的执行效率或者从根本上提高CPU的执行效率而来。

进程和线程的区别

  • 进程:

    就是正在运行的程序。可以打开任务管理器查看。一个软件一个程序的运行可以依赖一个进程或者多个进程。

    特点:

    独立性:进程是系统中独立存在的实体,它可以拥有自己的独立的资源,每一个进程都拥有自己私有的地址空间。在没有经过进程本身允许的情况下,一个用户进程不可以直接访问其他进程的地址空间。

    动态性:进程与程序的区别在于,程序只是一个静态的指令集合,而进程是一个正在系统中活动的指令集合。在进程中加入了时间的概念,进程具有自己的生命周期和各种不同的状态,这些概念在程序中都是不具备的。

    并发性:多个进程可以在单个处理器上并发执行,多个进程之间不会互相影响。

  • 线程:

    操作系统能够进行运算调度的最小单位,是进程的实际运作单位。一个软件的运行最少依赖一个进程,一个进程的运行最少依赖一个线程. 一个进程包含一个线程就是单线程程序,也可以包含多个线程就是多线程程序

    线程概念图:

    线程

  • 进程和线程的关系:

    进程有独立的存储空间,可以存线程,也可以有多个线程共享的空间、线程有独立空间,线程间暂时无法通信。线程之间也是独立的。

    一个操作系统中可以有多个进程,一个进程中可以有多个线程,每个进程有自己独立的内存,每个线程共享一个进程中的内存,每个线程又有自己独立的内存。

    进程和线程关系概念图: (整个大框是进程, 一个Thread是一个线程)

    关系

并发和并行的区别:

  • 并发

    多个程序抢占了同一个CPU资源。形成了资源被抢占的现象。例如:抢购秒杀!

  • 并行

    有多个CPU,每个CPU只负责一件事情,没有发生抢占现象

多线程的特点

  1. 随机性:

    是指,操作系统的程序执行权,会交给CPU,CPU我们控制不了,全都是操作系统调度的。

  2. 线程状态

    新建状态、可运行状态、运行状态、终止状态、阻塞状态。

posted on 2020-05-22 22:11  liqiangbk  阅读(218)  评论(0编辑  收藏  举报

导航