实现双端队列
源码123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103#include <iostream>template<typename ItemType>class Queue{private: struct Node { Node* next; ItemType data; Node() : next(nullptr) {} explicit Node(const ItemType& item) : next(nullptr), data(item) {} ...
Z Reference Link
MiscCS自学指南 https://csdiy.wiki/ Data Structures & Algorithm信息学奥林匹克竞赛 https://oi-wiki.org/ MiscTreeHashLinearGraphDynamic ProgrammingBasic AlgorithmStringArtificial IntelligenceGenerative AIReinforcement LearningComputer GraphicsGAMES系列课程 https://games-cn.org/ SimulationAnimationRenderingGeometryOperating system操作系统:设计与实现 (2024 春季学期) https://jyywiki.cn/OS/2024/ Compilation PrincipleComputer OrganizationComputer Network
2 并发
概念并发:同一时间段,多个任务请求执行,任一时刻只能处理其中一个任务。发生在 同一实体,单处理器目的是 提高系统响应速度 并行:同一时间段,多个任务同时执行,任一时刻同时处理多个任务。发生在 不同实体,多处理器目的是 提高处理能力 核心区别:任务间是否存在处理器的竞争关系。 死锁原理: 互斥 需求如此 请求与保持 先机优势:首次执行一次性分配资源,避免等待。 不可剥夺 兜底策略:申请不到时,主动释放已有资源。 循环等待 万能钥匙:按序申请,给资源编号,按序号优先级先后申请。此时多资源并发互斥变成单资源。 理解并发问题:一切都是状态机 并发编程技巧: 进程、线程、协程