
操作系统
文章平均质量分 95
程序员徐述
公号:程序员徐述
展开
-
深入分析线程安全问题的本质
线程安全问题指的是当多个线程同时访问共享资源时,程序无法按预期正常执行,导致数据不一致。原子性问题:多个线程同时访问共享变量时,可能会中断或交叉执行,导致不正确的结果。可见性问题:一个线程对共享变量的修改,其他线程可能看不到,造成数据不一致。重排序问题:由于编译器、JVM或处理器优化,导致代码执行顺序不一致,产生错误的结果。下面我们具体分析下。原子性问题:操作被拆分成多个步骤,多个线程同时执行时,操作可能会中断或交叉执行,导致数据错误。可见性问题:源于缓存导致的不同线程工作内存与主内存不一致;原创 2025-01-09 21:05:14 · 746 阅读 · 0 评论 -
面试官:说说有了进程,为什么还要有线程?
操作系统通过时间片分配来让多个进程轮流执行。比如,有三个进程:A、B、C。进程A首先获得CPU时间片执行。当A的时间片用完,操作系统就会切换到进程B或C。问题是,A未执行完成,如何确保下次继续执行?为了解决这个问题,操作系统引入了“上下文”的概念。在每个任务运行前,CPU需要知道任务是从哪儿运行的,然后从哪儿开始的,也就是说,需要系统给它设置好CPU寄存器和程序计数器。CPU寄存器:CPU内置的容量小,但是速度极快的内存;程序计数器:是用来存储正在执行的指令位置,或者即将执行的下一条指令位置。原创 2024-12-31 10:21:51 · 1094 阅读 · 0 评论 -
一文读懂进程的前世今生
进程是一个程序在计算机中执行的实例。它不仅包括程序的代码,还包括程序的当前状态、资源(如内存、CPU时间等)、程序计数器、堆栈和数据等。进程是操作系统进行资源管理和调度的基本单位。简单来说,进程就是程序在运行时的【容器】,它包含了程序执行所需要的一切资源和信息。当你启动一个应用程序时,操作系统会为该程序创建一个进程,以便管理和执行。我们回到文章开头的几个问题。①. 操作系统为什么引入进程?在多道程序环境下,多个程序可以同时执行,这时它们的执行变得不再是线性的。原创 2024-12-08 14:37:05 · 705 阅读 · 0 评论