前言: 在两个或多个SQL Server进程中,每一个进程锁定了其他进程试图锁定的资源,就会出现死锁,例如,进程process1对table1持有1个排它锁(X),同时process1对table2请求1个排它锁(X), 进程process2对table2持有1个排它锁(X),同时process2对 ...
分类:
数据库 时间:
2019-05-26 21:10:45
阅读次数:
203
mysql 加锁方法;(大前提条件 :必须在事务中执行) 排它锁:(作用: 当对数据表添加排它锁时,各个事务之间对这个数据表的执行顺序就会形成一个队列 , 防止读到脏数据;) 1.显示加锁: sql语句 :select * from table where key = ... for update; ...
分类:
数据库 时间:
2019-05-20 19:00:37
阅读次数:
169
[toc] 5. AQS(AbstractQueuedSynchronizer)抽象的队列式的同步器 AQS为依赖FIFO的等待队列的阻塞锁和相关的同步器(信号量,事件等)实现提供了一个框架。设计的目标是为大部分的依赖一个原子int值表示状态的同步器提供一个有用的基础。子类必须实现一个受保护的来改变 ...
分类:
其他好文 时间:
2019-05-17 23:10:27
阅读次数:
208
1.悲观锁 for update 悲观锁认为每次查询数据数据都会造成数据的更新或者丢失问题,所以每次查询都会加上排它锁。 如图所示,当两条线程同时访问该sql语句时,可能会造成脏读数据user_money为原来的两倍(假设线程一执行完第一句等待,线程二将两句全部执行完,这时线程一如果继续执行则会脏读 ...
分类:
其他好文 时间:
2019-05-02 23:01:59
阅读次数:
155
六种: 1、新建(New):创建后尚未启动的线程的状态 2、运行(Runnable):包含Running 和Ready 3、无限期等待(Waiting):不会被分配CPU执行时间,需要显式被唤醒 没有设置Timeout参数的Object.wait()方法 没有设置Timeout参数的Thread.j ...
分类:
编程语言 时间:
2019-04-07 09:35:05
阅读次数:
186
从linux源码看epoll前言在linux的高性能网络编程中,绕不开的就是epoll。和select、poll等系统调用相比,epoll在需要监视大量文件描述符并且其中只有少数活跃的时候,表现出无可比拟的优势。epoll能让内核记住所关注的描述符,并在对应的描述符事件就绪的时候,在epoll的就绪链表中添加这些就绪元素,并唤醒对应的epoll等待进程。本文就是笔者在探究epoll源码过程中,对k
分类:
系统相关 时间:
2019-02-25 20:19:40
阅读次数:
260
答案是一个6位的正整数。 请通过浏览器提交答案。 注意:只提交另一6位数,题中已经给出的这个不要提交。 注意:不要书写其它的内容(比如:说明性的文字)。 (5分) 代码: ...
分类:
其他好文 时间:
2019-02-12 18:56:35
阅读次数:
156
final用于修饰类,方法,属性。修饰类时,该类不能被继承,final修饰的类不允许为abstract抽象类,类中的所有方法都不能被重写。 final修饰的方法不能被重写,但是子类中可以用父类中final修饰的方法。 final修饰的成员变量是不可变的,如果成员变量是基本数据类型,初始化之后成员变量 ...
分类:
编程语言 时间:
2019-02-11 20:12:58
阅读次数:
219
InnoDB是一个支持行锁的存储引擎,它有三种行锁的算法: Record Lock:行锁,单个行记录上的锁。 Gap Lock:间隙锁,锁定一个范围,但不包括记录本身。GAP锁的目的,是为了防止幻读、防止间隙内有新数据插入、防止已存在的数据更新为间隙内的数据。 Next-Key Lock:1+2,锁... ...
分类:
数据库 时间:
2019-02-10 00:12:00
阅读次数:
451
实验环境: mysql5.6 存储引擎:innoDB 我们在操作数据库的时候,可能会由于并发问题而引起的数据的不一致性(数据冲突) 乐观锁乐观锁不是数据库自带的,需要我们自己去实现。乐观锁是指操作数据库时(更新操作),想法很乐观,认为这次的操作不会导致冲突,在操作数据时,并不进行任何其他的特殊处理( ...
分类:
数据库 时间:
2019-01-24 23:31:12
阅读次数:
311