线程和进程的区别?
1)进程包括线程
一个进程可以包含多个线程,但是一个线程只能在一个进程里面,但是一个进程里面至少都要有一个线程。
2)基本单位不同
进程是“资源分配”的基本单位,线程是“调度执行”的基本单位。
资源是什么:CPU时间,内存空间,文件,文件,输入输出设备的使用权等等
3)资源分配不同
一个进程拥有一份内存资源(也就是内存里new出来的对象/变量),每个进程拥有的内存资源都各自一份。但是同一个进程里面的线程是共用一份内存资源的,所以是多个线程用一份资源。
4)多线程在Java圈子是并发编程的主流的编程方式。
主要比进程轻量,多线程可以充分利用好多核心CPU,但是不是越多越好,线程达到一定的数量,就无法继续加快速度了,还会引起一些安全问题。
5)多个线程之间会相互影响。
要是一个线程出现安全问题,没有及时阻止,就可能会一起带走其他线程。
6)进程之间不会影响
进程之间有隔离性,一个进程奔溃了,不会影响到其他进程。
上一篇:什么是反射机制?为什么慢?
下一篇:什么是脏读、幻读、不可重复读的?
相关文章
-
Redis集群扩容时如何进行数据迁移?读写请求如何保证不丢失?
Redis Cluster扩容的本质是Slot迁移。当新机器加入集群时,需要将部分Hash Slot从旧节点迁移到新节点。在迁移过程中必须保证数据不丢失、服务不中断、读写请求正常执行。因此需要设计迁移状态管理、请求重定向机制、双写保护机制以及最终一致性校验机制。
NEW个对象 2026-06-09
-
你是如何融入团队的?
你是如何融入团队的?
NEW个对象 2026-07-14
-
MySQL索引:聚集索引、非聚集索引、联合索引、回表、索引覆盖
MySQL索引:聚集索引、非聚集索引、联合索引、回表、索引覆盖
NEW个对象 2024-10-03