线程和进程的关系

线程与进程的关系

有线程之前:

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

有线程之后:

进程专注于 资源分配;

线程负责 调度执行;

例子:

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

多进程:

多线程:

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

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

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

总结

1.进程是包含线程的;

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

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

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

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

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

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

相关推荐
摇滚侠2 分钟前
SpringMVC 入门到实战 DispatcherServlet 源码解读 92-95
java·后端·spring·maven·intellij-idea
键盘歌唱家30 分钟前
Spring AI 入门分享:它和“直接调 API“到底差在哪
java·人工智能·spring
宸丶一1 小时前
Day 10:LangGraph - Agent 的图执行引擎
java·windows·python
hikktn1 小时前
Excel 导出 OOM 预防实战:30 万行从堆溢出到 50MB 的演进
java·excel·easyexcel
风味蘑菇干1 小时前
WTomcat服务器
java·服务器
weixin_307779131 小时前
Python写入Shell文件使用Linux系统的换行符
linux·开发语言·python·自动化
燕-孑1 小时前
tomcat详解(基础到高级生产)
java·tomcat
码不停蹄的玄黓2 小时前
Spring Bean 生命周期
java·后端·spring
西安邮电大学2 小时前
分治算法详细讲解
java·后端·其他·算法·面试
liulilittle2 小时前
Linux Swap 文件配置与持久化(虚拟内存)
linux·运维·服务器