线程和进程的区别?
1)进程包括线程
一个进程可以包含多个线程,但是一个线程只能在一个进程里面,但是一个进程里面至少都要有一个线程。
2)基本单位不同
进程是“资源分配”的基本单位,线程是“调度执行”的基本单位。
资源是什么:CPU时间,内存空间,文件,文件,输入输出设备的使用权等等
3)资源分配不同
一个进程拥有一份内存资源(也就是内存里new出来的对象/变量),每个进程拥有的内存资源都各自一份。但是同一个进程里面的线程是共用一份内存资源的,所以是多个线程用一份资源。
4)多线程在Java圈子是并发编程的主流的编程方式。
主要比进程轻量,多线程可以充分利用好多核心CPU,但是不是越多越好,线程达到一定的数量,就无法继续加快速度了,还会引起一些安全问题。
5)多个线程之间会相互影响。
要是一个线程出现安全问题,没有及时阻止,就可能会一起带走其他线程。
6)进程之间不会影响
进程之间有隔离性,一个进程奔溃了,不会影响到其他进程。
上一篇:什么是反射机制?为什么慢?
下一篇:线程同步与线程安全的区别?
相关文章
-
for循环执行流程
这也是一个笔试题,也是一道即便再复习两年也不会复习到点。
NEW个对象 2025-01-13
-
JVM常见的配置参数
JVM常见的配置参数
NEW个对象 2025-01-09
-
cglib与jdk代理的区别
JDK 动态代理: 只支持接口代理。它通过反射机制生成一个实现了指定接口的代理类。 代理对象只能调用接口中定义的方法。 CGLib 动态代理: 通过继承方式生成代理类。它可以代理没有实现接口的类。 代理对象可以调用类中的所有方法(除了final方法)。
NEW个对象 2025-01-18