上一篇中整理了一些面试中常被问到的技术问题,其中我觉得两个比较重要的就属死结(deadlock)与DB Transaction了。
首先是死结。
来看一下维基百科上的定义-
当两个以上的运算单元,双方都在等待对方停止执行,以取得系统资源,但是没有一方提前退出时,就称为死结。在多工作业系统中,作业系统为了协调不同行程,能否取得系统资源时,为了让系统运作,必须要解决这个问题。
而达成死结,需有以下四个条件:
死结只有在四个条件同时满足时发生,预防死结必须至少破坏其中一项。
以下是我画的一张图,相信可以帮助你更了解死结。
而第二个观念为DB transaction:
Transaction顾名思义,他把资料库的每一笔query或动作当成是一笔笔交易一样,若前一个交易还没完成,下一笔交易就不能执行,而当前一笔交易出错,下一笔交易同样不会执行,且出错同时,会rollback回最初的状态。
<<: [Day27]Flutter Netflix UI 使用json_serializable转换Model
>>: op.27 《全领域》-全域开发实战 - 居家植物盆栽 Mvt II (C# Broker & Mysql)
前言 首先把之前做的资料库格式搬家,也就是取得每日的股票之交易资讯进入资料库,首先要做的就是建立资料...
今日第一题:415. Add Strings Given two non-negative inte...
html的form标签之input小记录 前言本篇是上课中所提及好用,但是笔者小新手之前未发现的上课...
条件式就是小学常写的造样造句:如果...就(否则)...的概念。 这边会介绍几种常用的条件式语句 i...
有Transaction就有可能会发生Deadlock. 在RDS上发生的时候就可从LOG里看出发生...