初识多线程(初初识)

进程

在操作系统 进程有着举足轻重的位置

无论创建进程 或者 销毁进程时 这里的开销就会变得会很大

多任务操作系统 是一种允许同时运行多个程序或进程的操作系统。这些任务可以并发执行

CPU是多核心的

通过 多进程 可实现 并发编程

并发编程涉及多个任务在同一时间段内交替执行

核心目标包括提高资源利用率、降低延迟、增强系统吞吐量。

进程包含着线程

进程是操作系统分配资源的基本单位

进程 管辖着许多线程 共享 着 CPU 内存资源 和 硬盘资源等等

线程

由于进程的开销过大 所以在此基础上 建立了 轻量级的 线程**(** 开销相比小**)**

好比说

每一个进程相当于是一个任务

每一个线程相当于是一个任务中的****一段指令

对于线程 当第一个线程建立时 会申请资源 在后续中不再会身申请资源

只有所有的线程使用完后 都被释放掉后 (进程销毁) 只有其中一两个也不会释放资源

线程在CPU的一系列执行过程中 称为 线程调度、

线程调度中也有着 线程状态 线程优先级 线程上下文 线程记账信息

(本质与进程调度相同)

线程是CPU上调度执行的基本单位

但在一个 进程 中 有10个 线程 就会有这样10份数据 可以10个 线程共享 一个 内存指针 文件描述表

线程 与 进程 之间所涉及到的 资源都是互不干涉的

多进程方案中 确实提高性能 但是在一定的范围内

1.当线程过于多时 有时会适得其反 反而可能因为调度开销又在降低了性能

2.多个线程还会有可能处理同一个 这里会产生线程安全问题/线程不安全

3.线程抛出异常 但是未捕捉到 可能导致整个进程崩溃

进程 与 线程 比较

进程 是包含线程的.每个进程 ⾄少有⼀个线程存在,即主线程。

进程 和 进程之间不共享内存空间.同⼀个进程的线程之间共享同⼀个内存空间。

进程 是 系统分配资源 的 最⼩单位,线程 是 系统调度 的 最⼩单位。

⼀个进程挂了⼀般不会影响到其他进程.但是⼀个线程挂了,可能把同进程内的其他线程⼀起带⾛(整 个进程崩溃)。

相关推荐
她的男孩3 小时前
Spring Boot 接 Flowable 工作流:用 3 个注解搭一个请假审批流程
java·后端·架构
你好潘先生4 小时前
别再记命令了,用 yeero do 说句人话就能跑脚本,而且不烧 token
服务器·python·命令行
荣码4 小时前
LLM结构化输出:让AI返回JSON而不是废话,我踩了4个坑
java·python
plainGeekDev6 小时前
Gson → kotlinx.serialization
android·java·kotlin
小bo波14 小时前
Java Swing 图形用户界面实验 —— 从算术练习到游戏开发的完整实践
java·课程设计·gui·游戏开发·扫雷·swing
咖啡八杯16 小时前
GoF设计模式——备忘录模式
java·后端·spring·设计模式
程序员老赵1 天前
服务器文件不想 SFTP 上传?Docker 跑个 File Browser,浏览器就能管理
服务器·docker·开源
SamDeepThinking1 天前
裁掉那个差程序员后,给你看团队里高手的代码:这个习惯,希望你有
java·后端·程序员