• 技术文章 >java >java基础

    java进程和线程的关系

    小妮浅浅小妮浅浅2021-08-02 10:15:44原创3886

    定义

    1、线程是处理器任务调度和执行的基本单位,进程是操作系统资源分配的基本单位。

    包含关系

    2、一个进程可以包含多个线程。

    从Java虚拟机的角度来看,Java虚拟机运行时的数据区包括堆、方法区、虚拟机栈、本地方法堆、程序计数器。每个过程是独立的,每个过程包含多个线程,每个过程包含的多个线程不是独立的。这个线程会分享过程的堆和方法区,但这些线程不会分享虚拟机栈、本地方法堆和程序计数器。也就是说,每个过程包含多个线程共享过程的堆和方法区,以及私有的虚拟机栈、本地方法堆和程序计数器。

    3、区别在存储器分配和资源开销。

    存储器分配:进程中的地址空间和资源是相互独立的,同一过程中的线程将共享线程中的地址空间和资源(堆和方法区)。

    资源开销:每个进程都有自己的数据空间,进程之间的切换会有很大的开销。属于同一个进程的线程会共享堆和方法区,同时会有私人虚拟机栈、本地方法栈、程序计数器,线程之间的切换资源开销较小。

    以上就是java进程和线程的关系,希望对大家有所帮助。更多Java学习指路:Java基础

    本教程操作环境:windows7系统、java10版,DELL G3电脑。

    专题推荐:java 进程 线程
    品易云
    上一篇:java io和nio的区别 下一篇:Java守护线程和用户线程的区别

    相关文章推荐

    • java稀疏数组是什么• java静态绑定是什么• java动态绑定如何理解?• java静态和动态绑定的对比• java方法重载的无效探究• java重载方法的参数设置• JavaScript数组有哪些遍历方法• JavaScript for-in和for-of的不同点• JavaScript使用map创建新数组• filter在JavaScript中过滤数组元素• Java序列化是什么• Java反序列化如何理解• java懒汉和饿汉模式的区别• java单例模式中的Holder是什么• java枚举类型的原理• java静态方法和非静态方法的介绍• java io和nio的区别

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网