JMM:线程通过主内存共享变量,每个线程有本地工作内存。 指令重排序:编译器 & CPU 为优化会调整执行顺序(不影响单线程语义)。
父子进程关系中,如果父进程先退出,子进程要被1号init/systemd进程领养,这个被领养的进程(子进程),叫做孤儿进程。
CPU运行一个进程,先找到PCB,通过PCB找到进程对应的代码和数据。一个CPU。有一个调度队列。 调度队列就是进程状态为 ready 或 running 的...
这段代码的核心思路是使用广度优先搜索(BFS)算法来计算在一个二维网格中,从给定的起始点 (x, y) 出发,马按照 “日” 字形走法到达网格中每个可达点所需的...
如何解决:1. 暴力,把多源最短路问题转换成若干个单元最短路问题,大概率会超时 2.把所有的源点当成一个“超级源点”,问题...
本文深入探讨了操作系统中进程的核心概念——进程状态及其转换机制。文章通过图文并茂的方式,详细阐述了进程从创建到终止所经历的就绪、运行、阻塞和挂起等基本状态。重点...
priority_queue 是 C++ STL 中的重要容器适配器,它通过堆结构维护元素的优先级,使得每次访问和删除的都是当前优先级最高的元素。本文从 pri...
栈:⼀种特殊的线性表,其只允许在固定的⼀端进⾏插⼊和删除元素操作。进⾏数据插⼊和删除操作的⼀端称为栈顶,另⼀端称为栈底。栈中的数据元素遵守后进先出的原则。(先进...
虽然stack和queue中也可以存放元素,但在STL中并没有将其划分在容器的行列,而是将其称为 容器适配器,这是因为stack和队列只是对其他容器的接口进行了...
二叉树是一种数据结构,其中每个节点最多有两个子节点,分别是左子节点和右子节点。二叉树的链式结构表示是使用指针(或引用)来连接节点,形成树形结构。每个节点包含一个...
通过画图发现,当head==tail时,既是队列为空的条件,也是队列满的条件,所以我们可以通过增加一个空间来辅助判满,当tail+1=head时。还有另外一个方...
另外扩展了解一下,实际中我们有时还会使用一种队列叫循环队列。如操作系统讲解生产者消费者模型时可以就会使用循环队列。环形队列可以使用数组实现,也可以使用循环链表实...
①: TimerTask task: 定时器类里面安排的任务, 实现了Runnable接口, 说明需要重写 run 方法
②:CallerRunsPolicy(): 调⽤者负责处理多出来的任务, 即哪个线程调用的线程池那么再把任务返还给它, 让它自己执行该任务