线程和进程的概念及区别

后端 潘老师 6个月前 (11-06) 141 ℃ (0) 扫码查看

在正式进入Java多线程学习之前,我们需要先了解下什么是线程、什么是进程,以及线程和进程的区别。

进程概念-什么是进程

简单的来说:进程(process)就是被加载到内存中的可执行程序。更准确的来说,进程是有特定功能的程序在一个数据集上一次动态执行的过程。

它是操作系统执行任务的基本单元,也是分配资源和调度的基本单元。

可以把进程简单理解为操作系统中正在运行的一个程序,包括程序计数器、寄存器和程序变量的当前值。

每个进程都有独立的内存空间;比如打开微信,则表示开启了一个微信进程。可通过任务管理器查看当前运行进程。

当一个程序被运行,从磁盘加载这个程序的代码至内存,这时就开启了一个进程。

进程示意图

线程概念-什么是线程

线程(Thread)是进程的一个执行单元,是操作系统能够进行运算调度的最小单位。

进程是线程的容器,一个进程至少有一个线程,一个进程可以同时并发运行多个线程,它被包含在进程之中,是进程中的实际运作单位。

线程和进程的关系

进程与线程的区别

  • 本质区别:进程是操作系统资源分配的基本单位,而线程是处理器任务调度和执行的基本单位。
  • 包含关系:进程基本上相互独立的,而线程存在于进程内,是进程的一个子集,一个进程至少有一个线程,线程是进程的一部分,所以线程也被称为轻权进程或者轻量级进程。
  • 进程拥有共享的资源,如内存空间等,供其内部的线程共享
  • 进程间通信较为复杂,同一台计算机的进程通信称为 IPC(Inter-process communication),不同计算机之间的进程通信,需要通过网络,并遵守共同的协议,例如 HTTP。线程通信相对简单,因为它们共享进程内的内存,比如多个线程可以访问同一个共享变量
  • 线程更轻量,线程上下文切换成本一般上要比进程上下文切换低

主线程和子线程关系

JVM启动时会创建一个主线程,该主线程负责执行main方法。主线程就是执行main方法的线程。

JAVA中的线程不是孤立的,线程之间也会存在一些联系。如果A线程创建了B线程,那么A线程就是B线程的父线程,B线程就是A线程的子线程。

什么是并行

两个或两个以上的系统作业在同一时间段内执行。

什么是并发

两个或两个以上的系统作业在同一时刻执行。

什么是同步

一个调用发起之后,会等待结果返回,结果不返回,自己不结束。

什么是异步

一个调用发起之后,不等待结果返回,自己直接结束。

上面就是一点小概念,帮大家整理一下,省得概念混淆。

总结

以上就是线程和进程的概念及区别,我们还介绍了主线程与子线程之间的关系。


版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/back/10618.html
喜欢 (1)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】