文章目录
1. 概念
-
进程: 是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位
-
线程: 是进程的一个执行单元,是进程内科调度实体,比进程更小的独立运行的基本单位,线程也被称为轻量级进程
一个程序至少一个进程,一个进程至少一个线程
2. 为什么需要线程
每个进程都有自己的地址空间,即进程空间,在网络或多用户换机下,一个服务器通常需要接收大量不确定数量用户的并发请求,为每一个请求都创建一个进程显然行不通(系统开销大响应用户请求效率低),因此操作系统中线程概念被引进
线程的执行过程是线性的,尽管中间会发生中断或者暂停,但是进程所拥有的资源只为改线状执行过程服务,一旦发生线程切换,这些资源需要被保护起来
进程分为单线程进程和多线程进程,单线程进程宏观来看也是线性执行过程,微观上只有单一的执行过程.多线程进程宏观是线性的,微观上多个执行操作
线程的改变只代表CPU的执行过程的改变,而没有发生进程所拥有的资源的变化
3. 进程与线程的区别
- 一个程序至少有一个进程,一个进程至少有一个线程
- 线程的划分尺度小于进程,使得多线程程序的并发性高
- 进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率
- 每个独立的进程有一个程序运行的入口、顺序执行序列和程序的出口.但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制
- 多线程的意义在于一个应用程序中,有多个执行部分可以同时执行.但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配