首页 > JAVA > 当前页面

线程和进程的区别?

2025-01-09 NEW个对象

 1)进程包括线程


一个进程可以包含多个线程,但是一个线程只能在一个进程里面,但是一个进程里面至少都要有一个线程。


2)基本单位不同


进程是“资源分配”的基本单位,线程是“调度执行”的基本单位。


资源是什么:CPU时间,内存空间,文件,文件,输入输出设备的使用权等等


3)资源分配不同


一个进程拥有一份内存资源(也就是内存里new出来的对象/变量),每个进程拥有的内存资源都各自一份。但是同一个进程里面的线程是共用一份内存资源的,所以是多个线程用一份资源。


4)多线程在Java圈子是并发编程的主流的编程方式。


主要比进程轻量,多线程可以充分利用好多核心CPU,但是不是越多越好,线程达到一定的数量,就无法继续加快速度了,还会引起一些安全问题。


5)多个线程之间会相互影响。


要是一个线程出现安全问题,没有及时阻止,就可能会一起带走其他线程。


6)进程之间不会影响


进程之间有隔离性,一个进程奔溃了,不会影响到其他进程。

相关文章

  • BigDecimal

    为什么不能用BigDecimal的equals方法做等值比较? 两个BigDecimal的数值进行比较的话,可以使用compareTo方法。 以:0.1和0.10为例子,equals会比较value和精度,很显然这两个数的精度不一样,会返回false

    NEW个对象 2025-02-11

  • 接口和抽象类的区别?

    接口和抽象类都是用来定义对象的公共行为的,两者本身不能实例化,但二者有以下7点不同:

    NEW个对象 2025-01-10

  • cglib与jdk代理的区别

    JDK 动态代理: 只支持接口代理。它通过反射机制生成一个实现了指定接口的代理类。 代理对象只能调用接口中定义的方法。 CGLib 动态代理: 通过继承方式生成代理类。它可以代理没有实现接口的类。 代理对象可以调用类中的所有方法(除了final方法)。

    NEW个对象 2025-01-18

NEW个对象 NEW个对象
JAVA是世界上最好的语言

推荐文章