线程和进程的关系

线程与进程的关系

有线程之前:

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

有线程之后:

进程专注于 资源分配;

线程负责 调度执行;

例子:

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

多进程:

多线程:

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

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

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

总结

1.进程是包含线程的;

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

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

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

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

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

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

相关推荐
吴声子夜歌7 分钟前
Shell编程实例——编写安全的shell脚本(二)
linux·运维·shell
景熙55231 小时前
15.Java 8 Stream 流入门到实战
java·开发语言·数据结构
wno7042 小时前
Spring Security权限控制
java·python·spring
xiaoye-duck2 小时前
《Linux 网络编程》深入理解 IP 协议(二):网段划分、私有 IP 与 NAT 地址转换
linux·网络·ip
杨运交2 小时前
[071][验证码模块]基于Spring拦截器的验证码认证设计思想
java·后端·spring
Geek-Chow3 小时前
CountDownLatch in Java
java
zx_741484813 小时前
【Linux入门】Shell 函数、正则表达式与文本处理:cut 与 awk
linux·运维·正则表达式
Zenova EdgeOS3 小时前
Linux dmesg 工业边缘实战:内核日志过滤、持久化与故障定位
linux·运维·边缘计算·工业边缘·dmesg·内核日志
金士顿3 小时前
System.Text.Json Source Generator 深度解析:为什么 Native AOT 不喜欢反射
linux·asp.net core·arm64·net·native aot
SL_staff3 小时前
从RBAC到场景化授权:《无忧·企业文档》三级权限模型的技术实践解析
java·开源·产品