进程与线程

什么是进程

 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。-----百度百科

 程序是由一个或多个进程组成的,在系统中通过pid来区分多个进程。在早期的单核cpu时,程序运行是通过“时间轮循”进行切换运行的,但是由于cpu运行速度非常快,所以在宏观上来看是同时执行的,但是在微观上确实同一时刻只有一个进程在执行。而目前的cpu普遍都为多核,已经可以实现在微观上同时运行进程。

如图
QQ20200727-152757

什么是线程

 多线程(multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。具有这种能力的系统包括对称多处理机、多核心处理器以及芯片级多处理或同时多线程处理器。在一个程序中,这些独立运行的程序片段叫作“线程”(Thread),利用它编程的概念就叫作“多线程处理”。

 一个线程可以说成是一个轻量级的进程,是cpu的基本调度单位。一个进程往往有一个或多个线程。在多个线程中,每个线程负责自己的任务,并且同时运行,这就是多线程。

 我们在运行java程序的时候,当中默认的主线程就是main()。我们可以通过创建多个独立线程来解决问题并且与main线程并发执行。比如目前有很多是多线程下载软件,其中迅雷就是,它把下载文件分成多个部分,通过不同的线程同时去下载,在全部下载完毕后进行组装。

进程与线程的区别

  1. 进程是操作系统的基本单位而线程是cpu基本的调度单位。
  2. 一个程序的运行至少拥有一个进程。
  3. 一个进程可以包含多个线程,但至少有一个线程。
  4. 进程之间不能共享数据段地址,但同进程之间的线程确是可以的。

使用多线程的好处

  1. 提高程序运行的效率。
  2. 更好的使用cpu资源,杜绝浪费。
# 多线程 

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×