- 博客(23)
- 收藏
- 关注
转载 IntelliJ Idea 常用快捷键列表
IntelliJ Idea 常用快捷键列表Ctrl+Shift + Enter,语句完成“!”,否定完成,输入表达式时按 “!”键Ctrl+E,最近的文件Ctrl+Shift+E,最近更改的文件Shift+Click,可以关闭文件Ctrl+[ OR ],可以跑到大括号的开头与结尾Ctrl+F12,可以显示当前文件的结构Ctrl+F7,可以查询当前元素在当前文件中的引用,然后按 F3 可以选择Ctrl+N,可以快速打开类Ctrl+Shift+N,可以快速打开文件Alt+Q,可以看到当前
2020-11-12 15:06:52 114
原创 面向对象的七大原则
开闭原则:对扩展开放,对修改关闭里式替换原则:继承必须确保超类所拥有的性质在子类中仍然成立依赖倒置原则:要面向接口编程,不要面向实现编程单一职责原则:控制类的粒度大小、将对象解耦、提高其内聚性接口隔离原则:要为各个类建立它们需要的专用接口迪米特法则:只与你的直接朋友交谈,不跟“陌生人”说话。合成复用原则:尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。...
2020-11-03 17:01:34 137
原创 学习设计模式的意义
设计模式的本质是面向对象设计原则的实际运用,是对类的封装性,继承性,多态性以及类的关联关系和组合关系的充分理解正确使用设计模式具有以下优点可以提高程序员的思维能力、编程能力和设计能力使程序设计更加标准化、代码编制更加工程化、使软件开发效率大大提高,从而缩短软件的开发周期使设计的代码可重用性高,可读性强,可靠性高,灵活性好,可维护性强。设计模式的基本要素模式名称问题解决方案效果Gof 23创建型模式:单例模式、工厂模式、抽象工厂模式、建造者模式、原型模式。..
2020-11-03 16:18:09 229
原创 死锁(十六)
死锁的必要条件互斥条件:进程互斥使用资源,资源具有独占性不剥夺条件:进程在访问完资源前不能被其他进程进行剥夺部分分配条件:进程边运行边申请资源,临时需要临时分配环路条件:多个进程构成环路,环中每个进程已占用的资源被前一进程申请,而自己申请资源又被环中后一资源占用预防死锁预先静态分配法特点执行可能被延迟,所需资源不能全部满足应用开销增大:运行前估算资源要求资源利用率低:资源被占而不用改进资源分配的单位由进程改为程序步有序资源分配法目的:破坏环路条件,使得
2020-10-31 15:13:44 73
原创 经典同步问题-生产者消费者问题(十五)
一群生产者(Producer)向一群消费者(Consumer)提供产品(数据)规则不能向满缓冲区存产品不能从空缓冲区取产品每个时刻仅允许一个生产者或消费者存或取一个产品
2020-10-30 17:49:40 215
原创 P-V操作解决同步互斥问题(十四)
同步机制的实质运行条件不满足的时候,能让进程暂停运行条件满足时,能让进程立即继续P-V操作用于进程同步的基本思路暂停当前进程:在关键操作之前执行P操作继续进程:在关键操作之后执行V操作...
2020-10-30 17:38:15 800
原创 P-V操作概念(十三)
信号灯的概念一种卓有成效的进程同步机制进程在运行过程中受信号灯状态控制,并能改变信号灯状态进程受控制:信号灯的状态可以阻塞或唤醒进程改变信号灯:信号灯的状态可以被进程改变信号灯机制信号灯的数据结构-信号灯变量定义为一个二元矢量(S,q)S:整数,初值非负(S又称信号量)q:PCB队列,初值为空集信号灯的操作p操作(函数或过程,P(S,q))v操作(函数或过程,V(S,q))...
2020-10-30 17:02:30 448
原创 同步和互斥的概念(十二)
进程的互斥关系多个进程由于共享了独占性资源,必须协调各进程对资源的存取顺序:确保没有任何两个或以上的进程同时进行存取操作互斥和资源共享相关资源:临界资源存取操作区域:临界区进程的同步关系 (条件关系)若干合作进程为了完成一个共同的任务,需要相互协调运行步伐,一个进程开始某个操作之前必须要求另外一个进程已经完成某个操作,否则前面的进程只能等待互斥属于同步的一种,属于特殊的同步...
2020-10-30 16:18:09 256
原创 锁机制(十一)
基本原理设置一个标志 “S”: 表明临界资源可用还是不可用 1:0进入临界区之前检查标志是否可用,若不可用,进程在临界区之外等待,若为等待,访问临界资源,且将标志修改为不可用,当退出临界区时,将标志修改为可用状态(上锁和开锁操作)...
2020-10-30 16:10:48 88
原创 临界资源与临界区(十)
程序设定一个特定区域不让两程序同时进入:只能先后进入临界资源一次只允许一个进程独占访问的资源临界区进程中访问临界资源的程序段临界区和临界资源的访问特点具有排他性并发进程不能同时进入临界区临界区访问机制的四个原则忙则等待:当临界区忙时,其他进程必须在临界区外等待。空闲让进:当无进程处于临界区时,任何有权进程可进入临界区有限等待:进程进入临界区的请求,应在有闲时间内得到满足让权等待:等待进程放弃CPU(让其他进程有机会得到CPU)...
2020-10-30 16:02:28 1142
原创 线程的概念(九)
线程是可以由CPU直接运行的实体一个进程内部可以创建多个线程多个线程可以共享CPU实现并发运行单线程程序整个进程只有一个线程,Windows程序缺省只有一个线程(主线程,main线程)多线程程序整个进程至少有两个线程。主线程和至少一个用户线程...
2020-10-30 15:43:59 80
原创 进程控制的概念(八)
进程控制的概念在进程生存全期间,对其全部行为的控制四个典型的控制行为创建功能: 创建一个具有指定标识(id)的进程参数: 进程标识、优先级、进程起始地址、CPU初始状态,资源清单创建进程的过程:- 创建一个空白PCB- 获得并赋予进程标识符ID- 为进程分配空间- 初始化PCB- 插入相应的进程队列伪代码:Create(Si, Mi, Pi) //CPU的状态,内存,优先级{p = Get_New_PCB( ); //分配新的PCBpid = Get_Ne
2020-10-30 14:48:57 480
原创 进程控制块PCB(七)
进程控制块(process control block)描述进程状态、资源、和与进程关系的数据结构PCB是进程的标志创建进程时创建PCB,进程撤销后PCB同时撤销进程 = 程序 + PCB创建一个进程时,就有一个PCB1创建两个进程时, 就会有PCB2PIDPPID:父进程IDPGID:进程组IDUID:用户IDGID:用户组ID进程的上下文context,进程运行环境,CPU环境进程切换过程换入进程的上下文进入CPU(从栈上来)换出进程的上下文离开CP
2020-10-30 14:27:35 196
原创 进程的状态(六)
进程的状态运行状态(running)进程已经占有CPU,在CPU上运行就绪状态(ready)具备运行条件但由于无CPU,暂时不能运行阻塞状态(block)因为等待某项服务完成或信号不能运行的状态如等待:系统调用, I/O操作, 合作进程信号进程状态的变迁进程的状态可以根据一定条件相互转化就绪 →运行:进程调度运行 →就绪:时间片到;被抢占运行 →阻塞:请求服务;等待信号阻塞 →就绪:服务完成;信号到来图片来自华中科技大学 苏曙光老师 《操作系统原
2020-10-30 14:14:46 191
原创 Actor模型
Actor 模型用于处理并行计算一个actor是一个最基本的计算单元基于消息计算特征: 各个actor之间互相隔离值得指明的一点是,尽管许多actors同时运行,但是一个actor只能顺序地处理消息。也就是说其它actors发送了三条消息给一个actor,这个actor只能一次处理一条。所以如果你要并行处理3条消息,你需要把这条消息发给3个actors。Erlang 引入了「随它崩溃」的哲学理念,这部分关键代码被监控着,监控者的唯一职责是知道代码崩溃后干什么(如将这个单元代码重置为正常状态)
2020-10-28 16:14:10 219
原创 操作系统的中断机制(四)
操作系统的中断机制中断定义指CPU对突发的外部时间的反应过程或机制CPU收到外部信号(中断信号)后,停止当前工作,转去处理该外部事件,处理完毕后回到原来工作的中断处(断点)继续原来的工作引入中断的目的实现并发活动实现实时处理实现故障处理中断源和中断类型引起系统中断的事件,叫做中断源中断类型强迫型中断和自愿型中断 强迫型中断:程序没有预期:例如:I/O中断,外部中断 自愿中断:程序有预期的。 例如:执行访管指令外中断(中断)和内中断(俘获) 外中断:由CPU外
2020-10-26 19:29:52 362
原创 操作系统 (三)CPU的态
CPU的态支持操作系统的最基本硬件结构cpu cpu的工作状态 对资源和指令使用权限的描述 态的分类 核态能够访问所有资源和执行所有指令管理程序/OS内核 用户态仅能访问部分资源,其他资源受限用户程序 管态介于核态和用户态之间硬件和OS对CPU的观察 硬件按“态”来区分CPU的状态 OS按“进程”来区分CPU的状态内存分类按存储器(半导体存储器)读写工作方式- RAM-
2020-10-26 11:12:08 487
原创 操作系统的逻辑结构(二)
操作系统的逻辑结构整体式结构以模块作为基本单位构建特点模块设计,编码和独立调试 模块调用自由 模块之间的通信多以全局变量形式完成缺点信息传递非常随意, 信息的维护和更新困难**2. 层次式结构**TCP/IP协议栈层次结构的优点– 结构清晰,避免循环调用– 整体问题局部化,系统的正确性容易保证– 有利于操作系统的维护 扩充和移植微内核结构(客户/服务结构, client/server结构) 操作系统 = 微内核 + 核外服务器微内核:
2020-10-25 15:35:21 105
原创 操作系统的功能(一)
操作系统的功能进程管理 (CPU管理)进程控制:创建,唤醒,暂停和撤销 进程调度:调度策略,优先级 进程通信:进程间通信内存管理内存分配 内存共享 虚拟内存 内存保护设备管理设备的分配和调度 设备的无关性作 设备传输控制 设备驱动文件管理存储空间管理 文件的操作 目录的操作 文件和目录的存取权限管理所以,一个软件是不是操作系统,就看它能不能管理进程,管理内存操作系统的定义提供用户接口,方便用户控制计算机 负责为程序分配和调度软硬件资源,并控制与协调..
2020-10-24 19:34:48 108
原创 进程的概念(五)
(一)程序在运行在并发环境中会出现的问题1.运行结果不确定2.运行结果不可再现(程序被干扰运行)3.解决方案:对运行过程施加相互制约(二)"描述和管理程序的运行过程" -- 进程(三)进程的定义1.进程是在某个数据集合上的一次运行活动2.数据集合:软/硬件环境,多个进程共享/共存的环境(四)进程的特征1.动态性 : 进程是程序的一次执行过程, 动态的产生和消亡2.并发性 : 进程可以和其他进程一同执行3.异步性 : 进程按各自的速度执行4.独立性 : 进.
2020-10-24 19:01:33 175
原创 写在前面
18年十月开始正式工作,虽然有所成长,但是在学习和面试的过程中也经常被CUE到 "基础不行"做了两年的游戏行业的上层业务开发,从非软件专业入行,在对底层不够理解透彻的情况下选择学习c++两年来周围优秀的人见过太多太多毫无疑问 当初来北京的决定改变了我的人生因为教育背景和年少无知浪费了大多数的时间有朋友说我勇气可嘉有朋友说我跳出舒适圈实属犯傻其实每个人都有自己不同的选择和道路罢了两年来从一个编程小白,到一个新手程序 涉猎虽多 erlang golang c++ lua...
2020-10-24 18:37:09 171 1
转载 vs2017/常用快捷键
VS常用快捷键搜集 窗口操作快捷键 项目快捷键 调试快捷键 编辑快捷键 代码快捷键 单元测试 项目相关的快捷键 Ctrl + Shift + B= 生成项目 Ctrl + Alt + L= 显示 Solution Explorer(解决方案资源管理器) Shift+Alt+ C= 添加新类 Shift+Alt+ A...
2020-03-26 11:58:40 130
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人