Windows IDEA 配置 Dev Container 环境
因为不想把本机的环境搞得乱七八糟,所以想到了 Dev Container 来进行开发,这样本机只需要 Git 环境和一个 IDE,其他的交给 Docker 但是不得不说,IDEA 官网的 Dev Container 指导 过于简略,里面埋了很多坑,所以在此记录下中间走过的路,踩过的坑,以备后续翻阅 先决条件 你有一个包含 .devcontainer 文件夹和 devcontain...
因为不想把本机的环境搞得乱七八糟,所以想到了 Dev Container 来进行开发,这样本机只需要 Git 环境和一个 IDE,其他的交给 Docker 但是不得不说,IDEA 官网的 Dev Container 指导 过于简略,里面埋了很多坑,所以在此记录下中间走过的路,踩过的坑,以备后续翻阅 先决条件 你有一个包含 .devcontainer 文件夹和 devcontain...
抽烟者问题 问题描述: 有一个供应者和三个抽烟者。每个抽烟者不停地卷烟并抽掉它,但要卷起并抽掉一支烟,抽烟者需要有三种材料:烟草、纸和胶水。三个抽烟者中第一个拥有烟草,第二个拥有纸,第三个拥有胶水。供应者进程无限地供应三种材料,供应者每次将两种材料放到桌子上,拥有剩下那种材料的的抽烟者卷起一根烟并抽掉它,并给供应者一个信号告诉已完成,此时供应者就会将另外两种材料放到桌上,如此重复(...
睡眠理发师问题 经典睡眠理发师问题 问题描述: 理发店有一位理发师、一把理发椅和 \(n\) 把供等候理发的顾客休憩的椅子;如果没有顾客,理发师便在理发椅上睡觉,当有顾客到来时,他唤醒理发师;如果理发师正在理发时又有新顾客来到,那么,如果还有空椅子,顾客就坐下来等待,否则就离开理发店。 经典问题,固定解法。如下: semaphore barber = 0; semaph...
读者-写者问题 问题描述: 有读者和写者两组并发进程,共享一个文件,当多个读进程同时访问共享数据时不会产生副作用,但若某个写进程和其他进程(读进程或写进程)同时访问共享数据时,则可能导致数据不一致的错误。因此要求: 允许多个读者同时对文件执行读操作; 只允许一个写者对文件执行写操作; 任何写者在完成写操作前不允许其他读者或写者工作; 写者在执...
其他 PV 问题 入库问题 问题描述: 在一个仓库中可以存放 A 和 B 两种产品,要求: 每次只能存入一种产品; A 产品数量 \(-\) B 产品数量 \(< M\) ; B 产品数量 \(-\) A 产品数量 \(< N\) 。 其中, \(M, N\) 是正整数,试用 PV 操作描述产品 A 和 产品 ...
哲学家就餐问题 题目描述: 有 \(5\) 位哲学家围坐在一张圆桌旁,桌子中央放有一盘通心面,每人面前有一只空盘子,每两人之间放一把叉子;每位哲学家思考、饥饿,然后吃通心面;为了吃面,哲学家必须获得两把叉子,且每人只能从紧邻自己的左边或右边去取叉子。 为了避免 \(5\) 名哲学家同时拿起一边筷子导致死锁,有几种方法: 至多允许 \(4\) 名哲学家同时吃通...
生产者-消费者问题 单生产者、单消费者、单缓冲区(经典生产者消费者问题) 题目描述: 一组生产者进程和一组消费者进程共享一个初始为空、大小为 \(n\) 的缓冲区,只有缓冲区没满时,生产者才能把产品放入缓冲区,否则必须等待;只有缓冲区不为空时,消费者才能从中取出产品,否则必须等待。由于缓冲区是临界资源,它只允许一个生产者放入产品,或一个消费者从中取出产品。 经典问题,固定...
设计模式是在特定环境下为解决某一通用软件设计问题提供的一套定制的解决方案,该方案描述了对象和类之间的相互作用。 对于每个设计模式要知道:名字、问题(使用场景)、解决方案、效果(优缺点)、示例代码 设计模式的类型有:创建型(用于创建对象)、结构型(用于组织结构)、行为型(用于处理职责和交互),根据处理范围也可以分为类模式和对象模式 重点是简单工厂模式、工厂方法模式、抽象工厂模式、单例...
软件 以程序代码为核心,由程序、文档和数据组成,独立于硬件的工具。它基于现实又高于现实,其开发远比编程更复杂。 软件工程 应用系统、规范、可量化的方法来开发、运行和维护软件,即将工程应用到软件,以及对上述各种方法的研究。 软件开发的具体步骤 需求开发:产品包括 SRS(需求规格说明文档)和需求分析模型,分别描...
操作系统 一种系统软件,它管理系统资源、控制程序执行、改善人机界面、提供各种服务、合理组织计算机工作流程、为用户方便有效地使用计算机提供良好的运行环境。 操作系统分类 批处理操作系统:采用批处理方式工作的操作系统。 也是最先采用多道程序设计技术的系统。不过在多道程序设计技术出现之前...