线程和进程的关系

线程与进程的关系

有线程之前:

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

有线程之后:

进程专注于 资源分配;

线程负责 调度执行;

例子:

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

多进程:

多线程:

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

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

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

总结

1.进程是包含线程的;

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

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

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

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

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

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

相关推荐
凸头4 分钟前
AI 流式聊天接口实现(WebFlux+SSE)
java·人工智能
简宸~4 分钟前
VS Code + LaTex + SumatraPDF联合使用指南
java·vscode·latex·sumatrapdf
yuuki23323313 分钟前
【Linux】开发工具链全解析:从 apt 到 gdb
linux·运维·服务器
弦有三种苦难14 分钟前
CCF-202412-T3缓存模拟90分
java·开发语言·spring
青槿吖20 分钟前
SpringMVC通关秘籍(下):日期转换器、拦截器与文件上传的奇幻冒险
java·开发语言·数据库·sql·mybatis·状态模式
wangjialelele20 分钟前
C++11、C++14、C++17、C++20新特性解析(一)
linux·c语言·开发语言·c++·c++20·visual studio
weixin_4563216426 分钟前
Java架构设计:Redis AOF持久化深度解析(原理+实战+避坑)
java·开发语言·redis
leaves falling28 分钟前
数据结构-堆学习
java·数据结构·学习
Java水解32 分钟前
Java 中实现多租户架构:数据隔离策略与实践指南
java·后端
不秃不少年1 小时前
Java 设计模式
java