02-进程和线程

引言:

首先声明的是,进程和线程都是存储空间,只不过任务不同,所以也可以叫 进程空间,线程空间

进程 / 进程空间:

把程序从磁盘加载到内存中并运行的应用程序。是资源分配单位(也就是一个程序的所有资源都会分配给一个进程空间,每个进程都有自己独立的一块内存空间,这个空间就是一个资源单位),比如在Windows系统中,一个运行的xx.exe就是一个进程。

线程 / 线程空间:

Java中 线程是cpu执行调度的最小单位,golang中 协程是cpu执行调度的最小单位 

二者关系:

  • 线程是进程的子集,这点很重要,也就是说没有进程,你执行个鬼的线程
  • 由于二者的分工不同,导致了线程空间一般都很小,资源易回收,上下文切换快,进程资源大,空间大,资源回收麻烦,不易上下文切换
  • 进程空间负责程序(操作系统把磁盘的程序内容称为管程)的资源存储,为线程的命令执行提供环境、数据支撑(像jvm进程的堆,方法区),线程空间则是存储着要执行的命令,等待cpu来调度执行
  • 线程之间共享进程中的资源(像jvm进程的堆,方法区)
  • 一个进程至少一个线程,当然也有特例,比如Java进程至少两个线程(主方法和gc回收器)
  • 如果两个进程间因时间片结束而进行上下文切换,那么认为是进程的上下文切换
  • 如果不同进程的线程要进行上下文切换,那么认为是进程的上下文切换
  • 如果同一个进程的两个线程进行上下文切换,那么认为是线程的上下文切换

【补充:】什么是上下文切换

【注:】有些文章说如果一个进程只有一个线程,也可以认为进程就是线程,这个意思我觉得是因为进程中仅仅包含一个线程子集,你如果指了进程就相当于指了线程,还望各位大佬多多指正

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值