Python 官方文档:入门教程 => 点击学习
目录一、进程线和程的概念二、为什么要有线程三、进程和线程的关系四、线程和进程的区别(重点)五、用户线程和守护线程区别一、进程线和程的概念 线程: 一个线程是一个独立的执行流,每个线程
线程: 一个线程是一个独立的执行流,每个线程之间都可以按照顺讯执行自己的代码. 多个线程之间 “同时” 执行着多份代码
public class ThreadDemo {
public static void main(String[] args) {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
//具体业务
Thread thread1 = Thread.currentThread();
System.out.println("名称:" + thread1.getName());
}
});
//开启线程
thread.start();
}
}
从以上代码可以看出,每个线程都是一个独立的执行流
进程:一个在内存中运行的应用程序。每个进程都有自己独立的一块内存空间,一个进程可以有多个线程,比如在windows系统中,一个运行的xx.exe就是一个进程
(1)首先并发编程成为需求
当单核CPU遇到问题,还是会采用多核CPU,那么并发编程能更充分利用多核 CPU资源
(2)虽然进程也可以并编程,但是线程更轻量
①创建线程比创建进程更快.
②销毁线程比销毁进程更快.
③调度线程比调度进程更快.
(3)那么是不是线程创建越多越好
不是的,当线程创建过多,会造成恶意争抢和线程过度调度,返回时就会降低执行效率
一个进程中可以有多个线程,多个线程共享进程的堆和方法区 (jdk1.8 之后的元空间)资源,但是每个线程有自己的程序计数器、虚拟机栈 (线程私有)和 本地方法栈(线程私有)
什么是虚拟机栈,本地方法栈
(1)虚拟机栈:每个 Java 方法在执行的同时会创建一个栈帧用于存储局部变量表、操作数栈、常量池引用等信息。从方法调用直至执行完成的过程,就对应着一个栈帧在 Java 虚拟机栈中入栈和出栈的过程。
(2)本地方法栈:和虚拟机栈所发挥的作用非常相似,区别是: 虚拟机栈为虚拟机执行 Java 方法 (也就是字节码)服务,而本地方法栈则为虚拟机使用到的 Native 方法服务。 在 HotSpot 虚拟机中和 Java 虚拟机栈合二为一
关系:当没有用户线程,那么守护线程也就没存在必要了
区别:JVM不等待守护线程执行完退出,JVM会等待用户线程执行完退出
到此这篇关于深入探究Java线程与进程有哪些区别的文章就介绍到这了,更多相关Java线程与进程内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: 深入探究Java线程与进程有哪些区别
本文链接: https://lsjlt.com/news/147375.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0