线程和进程的区别?
1)进程包括线程
一个进程可以包含多个线程,但是一个线程只能在一个进程里面,但是一个进程里面至少都要有一个线程。
2)基本单位不同
进程是“资源分配”的基本单位,线程是“调度执行”的基本单位。
资源是什么:CPU时间,内存空间,文件,文件,输入输出设备的使用权等等
3)资源分配不同
一个进程拥有一份内存资源(也就是内存里new出来的对象/变量),每个进程拥有的内存资源都各自一份。但是同一个进程里面的线程是共用一份内存资源的,所以是多个线程用一份资源。
4)多线程在Java圈子是并发编程的主流的编程方式。
主要比进程轻量,多线程可以充分利用好多核心CPU,但是不是越多越好,线程达到一定的数量,就无法继续加快速度了,还会引起一些安全问题。
5)多个线程之间会相互影响。
要是一个线程出现安全问题,没有及时阻止,就可能会一起带走其他线程。
6)进程之间不会影响
进程之间有隔离性,一个进程奔溃了,不会影响到其他进程。
上一篇:什么是反射机制?为什么慢?
下一篇:线程同步与线程安全的区别?
相关文章
-
sleep与wait的区别
1、sleep()方法属于Thread类的静态方法,wait()方法属于Object类的实例方法
NEW个对象 2025-01-10
-
CMS与G1的区别?
1、CMS是老年代回收器,可以配合其它Serial和ParNew收集器一起使用。 2、G1是全局范围的,不需要配合其它垃圾器使用
NEW个对象 2025-01-09
-
线程同步与线程安全的区别?
线程同步是指在多线程环境中,通过某种机制来协调多个线程对共享资源的访问,确保资源的访问顺序是有序和正确的。 线程安全是指多个线程访问同一资源时,不会出现数据错乱等问题;
NEW个对象 2025-01-10