多线程常用术语
2021-06-02 17:49 握瑾怀瑜 阅读(97) 评论(0) 编辑 收藏 举报线程安全:
指某个方法在多线程环境中被调用时,能够正确处理多线程之间的共享变量,返回预期的程序结果。
线程同步:
同步就是协同步调,按预定的先后次序进行运行。如:你说完,我再说。
线程同步,可理解为线程A和B一块配合,A执行到一定程度时要依靠B的某个结果,于是停下来,示意B运行;B依言执行,再将结果给A;A再继续操作。
原子操作:
一个函数或动作由一个或多个指令的序列实现,对外是不可见的;也就是说没有其他进程能看到其中间状态或中断此操作。
要保证指令序列要么作为一个组来执行,要么都不执行。原子性保证了并发进程的隔离。
互斥:
当一个进程在临界区访问共享资源时,其他进程不能进入该临界区访问共享资源的情形。
临界区:
一段代码,在这段代码中进程将访问共享资源,当另外一个进程已在这段代码中运行时,这个进程就不能在这段代码中执行。
死锁:
死锁定义为一组相互竞争系统资源或进行通信的进程间的"永久"阻塞。
形成死锁的四个条件:
1 互斥;2 占有且等待;3 不可抢占;4 循环等待。
活锁:
活锁指的是任务或者执行者没有被阻塞,由于某些条件没有满足,导致一直重复尝试->失败->尝试->失败。
活锁和死锁的区别:
在于,处于活锁的实体是在不断的改变状态,所谓的“活”;而处于死锁的实体表现为等待;活锁有可能自行解开,死锁则不能。
饥饿:
一个可运行进程尽管能继续执行,但被调用程序无限期的忽视,而不能被调度执行的情形。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架