线程和进程的关系

线程与进程的关系

有线程之前:

进程需要 分配资源 和 调度执行

有线程之后:

进程专注于 资源分配;

线程负责 调度执行;

例子:

假如 一个房间里有 100 道题 需要小明做:

多进程:

多线程:

不用额外申请内存,与前面资源共享,速度就更快了;

当线程数量太多的时候,线程就会相互京城 cpu资源(cpu核心是有限的)非但不会提高效率 反而会消耗资源;

多线程还有一个 重要问题;线程之间会'打架'(起冲突)

总结

1.进程是包含线程的;

2.每个线程,也是一个独立的执行流,可以执行一些代码,并且单独参与到 cpu 的调度中;

3.每个进程,有自己的资源,进程中的线程 共用 这一份资源(内存空间,文件描述符表)

进程是资源分配的基本单位,线程时调度执行的基本单位;

4.进程和进程之间,不会相互影响,如果同一个进程中的某个线程,抛出异常是可能会影响到其他线程,会把整个进程中的所有线程都异常终止

5.同一个进程中的线程之间,可能会互相干扰,引起线程安全问题;

6.线程也不是越多越好,够合适就行,线程太多,调度开销可能非常明显

相关推荐
信徒_3 小时前
ID 生成技术选型
java
a8a3023 小时前
Laravel8.x新特性全解析
java·spring boot·后端
XiYang-DING3 小时前
【Java EE】CAS(Compare And Swap)
java·开发语言·java-ee
白露与泡影3 小时前
Spring Boot 完整流程
java·spring boot·后端
空中海4 小时前
第二章:Maven进阶篇 — 依赖管理与构建生命周期
java·maven
__beginner__4 小时前
CentOS 磁盘占用异常排查与处理手册(df 高、du/ncdu 低)
linux·运维·centos
xun-ming4 小时前
AI时代Java程序员自救手册
java·开发语言·人工智能
DavidSoCool4 小时前
GB28181 PTZCmd 完整指令对照表(8 位 16 进制)+ 详细注释 + 使用说明
java·sip·gb28181
张健11564096484 小时前
C++访问控制与友元
java·开发语言·c++
Sam_Deep_Thinking4 小时前
中小团队需要一个资源微服务
java·微服务·架构