【操作系统-死锁】死锁发生的条件是什么?死锁的避免和预防方法

digest:本文章简要概述操作系统死锁的原因以及预防和解决方法。 1.死锁的定义 死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种进程间相互阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。 ——汤小丹等.《计算机操作系统》:西安电子科技大学出版社,2012.9. 2.死锁产生的原因 2.1 系统资源的竞争,系统资源的竞争导致系统资源不足,以及资源分配不当,导致死锁。 2.2 进程运
分类: 其他 发布时间: 11-05 21:17 阅读次数: 0

P4014 分配问题 网络流

P4014 分配问题 1 #include <bits/stdc++.h> 2 using namespace std; 3 const int maxn = 305, inf = 0x3f3f3f3f; 4 struct Edge { 5 int from, to, cap, flow, cost; 6 }; 7 8 struct MCMF { 9 int n, m, s, t; 10 vector<Edge> edges;
分类: 其他 发布时间: 11-05 21:17 阅读次数: 0

闭包, 迭代器, 生成器

一 闭包 在嵌套函数内,内部函数使用外部非全局变量 作用:保护数据的安全性 装饰器的本质就是闭包 def func(): avg_lst = [] # 自由变量 def foo(pirce): avg_lst.append(pirce) avg = sum(avg_lst) / len(avg_lst) return avg return foo ret = func() print(ret(150000)) print
分类: 其他 发布时间: 11-05 21:17 阅读次数: 0

git merge时merge/squash merge/rebase merge的区别

1. merge $ git checkout master $ git merge dev 这是最基本的 merge,会把分支的提交历史原封不动地拷贝过来,如果 master 此后已经有了新的提交,那么本次 merge 时还会额外自动创建一条 commit 信息用于记录本次 merge 操作。 2. squash merge $ git checkout master $ git merge --squash dev 字面意思,相比 merge 来说会减少分支合并的记录,会被压缩为一条 co
分类: 其他 发布时间: 11-05 21:17 阅读次数: 0

解决非controller使用@Autowired注解注入报错为java.lang.NullPointerException问题

在SpringMVC框架中,我们经常要使用@Autowired注解注入Service或者Mapper接口,我们也知道,在controller层中注入service接口,在service层中注入其它的service接口或者mapper接口都是可以的,但是如果我们要在我们自己封装的Utils工具类中或者非controller普通类中使用@Autowired注解注入Service或者Mapper接口,直接注入是不可能的,因为Utils使用了静态的方法,我们是无法直接使用非静态接口的,当我们遇到这样的
分类: 其他 发布时间: 11-05 21:17 阅读次数: 0

由一个空工程改为SpringBoot工程

1、先创建一个空的工程,创建springboot 工程 必须继承spring-boot-stater-parent 2、导入依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.2.RELEASE</version> </parent> 3、设置主启动类 @Sp
分类: 其他 发布时间: 11-05 21:17 阅读次数: 0

DFA最小化

1.将DFA最小化:教材P65 第9题 DFA最小化的图如下 用正规式描述其所识别的语言: a(c*|{da}*)bb* 2.构造以下文法相应的最小的DFA S→ 0A|1B A→ 1S|1 B→0S|0 S→ 0A|1B→S→ 0(1S|1)|1(0S|0)→01S | 01 | 10S | 10 →(01 | 10)S | (01 | 10)→(01 | 10)*(01 | 10) DFA最小化的图如下 3.自上而下语法分析,回溯产生的原因是什么? 原因:文法的产生式有问题 4.P100
分类: 其他 发布时间: 11-05 21:17 阅读次数: 0

JS学习笔记 之 简单基础部分,杂记

JS 两大特点 1. 解释性语言:跨平台,执行比编译性语言稍慢(解释-执行-解释-执行 -...) 2. 单线程 主流浏览器(自研内核) IE Trident Chrome webkit/blink firefox Geko Opera presto Safari webkit 开发标准 结构 行为 样式 相分离 html javascript css -> 结构清晰、方便后期维护 JS中的两大类报错 1. 低级错误(语法解析错误) -> 分号,字符等 2. 逻辑错误(语法错误)
分类: 其他 发布时间: 11-05 21:17 阅读次数: 0

05虚拟增强无法正常安装

https://jingyan.baidu.com/article/84b4f565579a7660f6da32b5.html
分类: 其他 发布时间: 11-05 21:17 阅读次数: 0

全栈工程师之路-React Native之扫描二维码

前言 以前开发移动端页面,总会被原生开发各种嫌弃,H5性能太低,动画不流畅,身为一名小前端我能怎么办呢?总是在无人的夜里,心里默默地流泪~ 后来 React Native 出来以后,终于可以翻身农奴把歌唱:哈哈哈,原生的小X人们,等待我 RN 的小皮鞭吧,pia~ 但是那时候若是不懂点 Android 或者 iOS,完全用 RN 开发一个 App,是非常痛苦的。 在尝试一段时间以后,由于实在难以忍受调教各种莫明其妙的报错,让我一度对这项新技能又爱又恨,望而生畏~ 但是最近由于项目上的需求又捡了
分类: 其他 发布时间: 11-05 21:17 阅读次数: 0

【原创】go语言学习(十)Map类型

目录 声明和初始化 基本操作 map排序 map类型的切⽚片 课后作业 声明和初始化 1、map类型是⼀一个key-value的数据结构。 //var a map[key的类型]value类型 var a map[string]int var b map[int]string var c map[float32]string   注意:map必须初始化才能使⽤用,否则panic 2、map类型的变量量默认初始化为nil,需要使⽤用make分配map内存 package main i
分类: 其他 发布时间: 11-05 21:17 阅读次数: 0

centos7安装及部署zabbix监控

一:实验环境 server.zabbix.com-------------------- 192.168.200.11 agent.zabbix.com------------------------192.168.200.12 二:配置主机名修改host文件 [root@localhost ~]# hostname server.zabbix.com [root@server ~]# vim /etc/hosts server.zabbix.com 192.168.200.11 agent.
分类: 其他 发布时间: 11-05 21:17 阅读次数: 0

关于springboot中的配置文件小知识

springboot中可以有多个配置文件,配置文件可以是.properties或则yml结尾的文件,并且配置文件有优先级,相同种类的配置application.properties 的优先级比较高,不同种类配置同时都会生效。 也可以自定义配置文件,随意命名,但是后缀名必须按照要求来!后台也可以通过@Value(“${key}”)注解来绑定值到属性;
分类: 其他 发布时间: 11-05 21:17 阅读次数: 0

Azure管理员-学习笔记-第1章 管理 Azure 订阅-1.1.概述

  全球54个区域(Region),100多个数据中心,可以全球使用。 Azure基础 Azure 管理员 Azure 开发者 Azure 安全工程师 Azure 解决方案架构师(考试 AZ-300\AZ-301) Azure DevOps工程师专家 一、管理Azure订阅和资源 比如订报纸,按月或者接年! 资源: 虚拟机\网络 二、实施和管理存储 创建存储帐号(本地高可用
分类: 企业开发 发布时间: 11-05 21:10 阅读次数: 0

innodb是如何巧妙实现事务隔离级别-转载

原文地址:innodb是如何巧妙实现事务隔离级别   之前的文章mysql锁机制详解中我们详细讲解了innodb的锁机制,锁机制是用来保证在并发情况下数据的准确性,而要保证数据准确通常需要事务的支持,而mysql存储引擎innodb是通过锁机制来巧妙地实现事务的隔离特性中的4种隔离级别。   事务ACID特性,其中I代表隔离性(Isolation)。隔离性是指,多个用户的并发事务访问同一个数据库时,一个用户的事务不应该被其他用户的事务干扰,多个并发事务之间要相互隔离。 1. 事务之间如何互相干
分类: 其他 发布时间: 11-05 21:01 阅读次数: 0

K8S 笔记,请坚持

service 通过 selector 来选择指定 label 的 pod。 如何访问 service 呢?集群内部访问,使用 cluster ip;集群外部访问,使用 NodePort。 cluster ip 是虚拟地址,只有加上端口,才能访问。而采用 NodePort,是在 node 节点上监听一个端口。
分类: 其他 发布时间: 11-05 21:01 阅读次数: 0

17.安卓通知

实现结果如下 需要修改的地方有四个地方, 实现思想, 实现代码 xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" androi
分类: 其他 发布时间: 11-05 21:01 阅读次数: 0

第七天.spring boot 整合mybatis

1.整合思路:   1.1 添加依赖 mybatis   1.2 在配置文件中配置数据源信息   1.3 编写pojo mapper接口 mapeer映射文件   1.4手动配置mybatis的包扫描,在主启动类添加@MapperScan 1.5 启动springboot服务器 2.开始工程部署:   2.1:添加依赖 mybatis      <!--整合springboot与mybatis的整合--> <dependencies> <dependency>
分类: 其他 发布时间: 11-05 21:01 阅读次数: 0

编程之我见

大多数编程都是激情不够,活也不行。 或者当下的技能完全可以胜任工作,拿到客观的薪水,就满足于温水之中,做一只安逸的青蛙。 想要学好编程必须富有激情,充满了性趣,这样你的活才行 理论:没有理论支撑,实践只是机械性的死记硬背代码。 实践:将理论穿插进实践,将理论都玩明白,姿势要舒服。 经验:遇到的问题多了,解决的多了,经验就多了。 复盘:从软件工程的角度去复盘整个项目,而不仅仅是一个单独的功能。例如什么样的数据应该放入缓存,如何防止缓存穿透。 编程的开始一般都是富有激情,但是活不行。 慢慢的因为没
分类: 其他 发布时间: 11-05 21:01 阅读次数: 0

函数初识:定义,调用,返回值,参数

一 函数的定义,调用,返回值 1.函数的作用: 封装 减少重复代码 2.函数的书写格式 def 关键字 定义一个函数 def 函数名(): 缩进 函数体(代码块) def func(): print('我') print('爱') print('你') return '1314' #返回值,将内容返回给调用者 #不写return或写了return不写值返回None msg = func() #函数名() -- 调用 pri
分类: 其他 发布时间: 11-05 21:01 阅读次数: 0