MSDN如是说:The LockWindowUpdate function disables or enables drawing in the specified window. Only one window can be locked at a time. BOOL LockWindowUpdate(  HWND hWndLock   // handle to window); ParametershWndLock [in] Specifies the window in which dr…
一. 理解并发机制 1. 什么是并发,并发与多线程有什么关系? ①. 先从广义上来说,或者从实际场景上来说. 高并发通常是海量用户同时访问(比如:12306买票.淘宝的双十一抢购),如果把一个用户看做一个线程的话那么并发可以理解成多线程同时访问,高并发即海量线程同时访问. (ps:我们在这里模拟高并发可以for循环多个线程即可) ②.从代码或数据的层次上来说. 多个线程同时在一条相同的数据上执行多个数据库操作. 2. 从代码层次上来说,给并发分类. ①.积极并发(乐观并发.乐观锁):无论何时从数…
  简介 在SQL Server中,每一个查询都会找到最短路径实现自己的目标.如果数据库只接受一个连接一次只执行一个查询.那么查询当然是要多快好省的完成工作.但对于大多数数据库来说是需要同时处理多个查询的.这些查询并不会像绅士那样排队等待执行,而是会找最短的路径执行.因此,就像十字路口需要一个红绿灯那样,SQL Server也需要一个红绿灯来告诉查询:什么时候走,什么时候不可以走.这个红绿灯就是锁. 图1.查询可不会像绅士们那样按照次序进行排队 为什么需要锁 在开始谈锁之前,首先要简单了解一下事…
1 前言 2 MDL锁与实现 3 MDL锁的性能与并发改进 4 MDL锁的诊断 前言 好久没更新,主要是因为Inside君最近沉迷于一部动画片——<新葫芦娃兄弟>.终于抽得闲,完成了本篇关于MySQL MDL锁的深入分析与介绍.虽然之前有很多小伙伴分析过,但总感觉少了点什么,故花了点时间翻看了下源码.Inside君或许不是最牛掰的内核开发人员,但自认为应该是业界最会讲故事的码农,希望本篇能做到通俗易懂,因为MDL锁其实并不好理解.如果同学们还有问题,也可以直接看源码文件mdl.cc. MDL锁…
来源:伯乐在线 - 夏天然后 链接:http://ios.jobbole.com/89474/ 点击 → 申请加入伯乐在线专栏作者 摘要 本文的目的不是介绍 iOS 中各种锁如何使用,一方面笔者没有大量的实战经验,另一方面这样的文章相当多,比如 iOS中保证线程安全的几种方式与性能对比.iOS 常见知识点(三):Lock.本文也不会详细介绍锁的具体实现原理,这会涉及到太多相关知识,笔者不敢误人子弟. 本文要做的就是简单的分析 iOS 开发中常见的几种锁如何实现,以及优缺点是什么,为什么会有性能上…
在SQL Server中,每一个查询都会找到最短路径实现自己的目标.如果数据库只接受一个连接一次只执行一个查询.那么查询当然是要多快好省的完成工作.但对于大多数数据库来说是需要同时处理多个查询的.这些查询并不会像绅士那样排队等待执行,而是会找最短的路径执行.因此,就像十字路口需要一个红绿灯那样,SQL Server也需要一个红绿灯来告诉查询:什么时候走,什么时候不可以走.这个红绿灯就是锁. 图1.查询可不会像绅士们那样按照次序进行排队 为什么需要锁 在开始谈锁之前,首先要简单了解一下事务和事务的…
1.野指针的概念.成因以及避免 首先,来说说什么是野指针,所谓野指针就是一个指向未申请访问受限的内存区域或者已经删除了的对象的指针. 什么意思呢?就是本来一个指针指向一个对象.一块内存,但是由于程序(函数)运行结束对象(栈内存)被释放,从而 导致指针指向一个“垃圾”内存,注意,不能将NULL指针认为是野指针.因为野指针指向的是随机的一块内存地址. 成因:1)指针在声明时没有进行初始化:2)在释放指针所指的内存时,没有将指针置为NULL:3)返回值是栈内存的指针或者引用. 避免:很多网上的资料都说…
本文主要是针对MySQL/InnoDB的并发控制和加锁技术做一个比较深入的剖析,并且对其中涉及到的重要的概念,如多版本并发控制(MVCC),脏读(dirty read),幻读(phantom read),四种隔离级别(isolation level)等作详细的阐述,并且基于一个简单的例子,对MySQL的加锁进行了一个详细的分析.本文的总结参考了何登成前辈的博客,并且在前辈总结的基础上,进行了一些基础性的说明,希望对刚入门的同学产生些许帮助,如有错误,请不吝赐教.按照我的写作习惯,还是通过几个关键…
要用到多线程 ,就不得不考虑,线程之间的交互,线程是否安全 推荐一个原文链接 是关于 线程锁的基本使用的  http://blog.csdn.net/qq_30513483/article/details/52349968这篇博客,也主要引用 这个链接的内容 4.1   OSSpinLock 自旋锁 : 线程通过busy-wait-loop的方式来获取锁,任时刻只有一个线程能够获得锁,其他线程忙等待直到获得锁. spinlock在多处理器多线程环境的场景中有很广泛的使用,一般要求使用spinlo…
在Oracle中有很多锁,通过v$lock_type视图可以查看Oracle中所有类型的锁,在本篇文章中我们熟悉一下TM和TX锁的类型 SQL> select * from v$lock_type where type in ('TM','TX'); TYPE NAME ID1_TAG ID2_TAG IS_USER DESCRIPTION -------- --------------- ------------------ ------------------- ------- ------…
在Solaris上写内核模块总是会用到互斥锁(mutex)与条件变量(condvar), 光阴荏苒日月如梭弹指一挥间,Solaris的大船说沉就要沉了,此刻心情不是太好(Orz).每次被年轻的有才华的同事们(比如Letty同学)问起mutex和cv怎么协同工作的,我总是不能给出一个非常清晰的解释.直到今天,看了cv_wait()的源代码之后,我终于可以给他们一个清楚明白的回答了. Solaris的源码无法被公开粘贴出来,幸好还有OpenSolaris的继承者illumos. 先贴cv_wait(…
问题导入:如果一个线程调用了一个对象的同步方法,那么他还能不能在调用这个对象的另外一个同步方法呢? 这里就是synchronized锁重入问题. 一.synchronized锁重入 来看下面的代码: .这个是三个同步方法的类 public class Synfun_UseSynfun{ //同步方法1 public synchronized void fun1(){ System.out.println("我是一号同步方法"); this.fun2();//调用二号同步方法 } //同…
线程安全 当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方法进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那么这个对象是线程安全的. Java语言中的线程安全 这里讨论的线程安全,就限定于多个线程之间存在共享数据访问的这个前提. 按照线程安全的“安全程度”由强到弱排序,可以把Java中各个操作共享的数据分为以下5类: 1 不可变 不可变(Immutable)的对象一定是线程安全的. 如果共享数据是一个基本数据类型…
1. 数据库事务ACID特性 数据库事务的4个特性: 原子性(Atomic): 事务中的多个操作,不可分割,要么都成功,要么都失败: All or Nothing. 一致性(Consistency): 事务操作之后, 数据库所处的状态和业务规则是一致的; 比如a,b账户相互转账之后,总金额不变: 隔离性(Isolation): 多个事务之间就像是串行执行一样,不相互影响; 持久性(Durability): 事务提交后被持久化到永久存储. 2. 隔离性 其中 隔离性 分为了四种: READ UNC…
<pre name="code" class="html">1. 数据库事务ACID特性 数据库事务的4个特性: 原子性(Atomic): 事务中的多个操作,不可分割,要么都成功,要么都失败: All or Nothing. 一致性(Consistency): 事务操作之后, 数据库所处的状态和业务规则是一致的; 比如a,b账户相互转账之后,总金额不变: 隔离性(Isolation): 多个事务之间就像是串行执行一样,不相互影响; 持久性(Durabil…
package annoction; import java.util.*; import java.util.function.Consumer; import java.util.function.Predicate; import java.util.function.UnaryOperator; import sun.misc.SharedSecrets; public class ArrayList<E> extends AbstractList<E> implement…
您好,我是南橘,万法仙门的掌门,刚刚从九州世界穿越到地球,因为时空乱流的影响导致我的法力全失,现在不得不通过这个平台向广大修真天才们借去力量.你们的每一个点赞,每一个关注都是让我回到九州世界的助力,兄弟萌来为我注入修为吧!关注WX号:南橘ryc 今天是平安夜,祝大家都有一个愉快的夜晚. "罗妍师姐!研究院中研究元宇宙的元婴真人罗铭志刚刚渡劫失败,差点陨落了."作为两世宅男,李小庚基本上不会出云霄殿,但是总能及时的获取门内各种八卦消息. "哦,我知道,他是我哥."二师…
2014第2周四部署环境&买火车票 今天遇到mysql一个问题:要把两个包含不同数据库的绿色mysql安装包中的数据库文件合并到一个数据库中,之前在sqlserver下操作很简单,只需要分离.附加数据库文件的操作就可以了,而mysql不能直接拷贝data文件夹,如果要强行物理文件拷贝则需要连data目录下的mysql文件夹也一起拷贝——这样可能对目标数据库中原来有用的数据库有影响,无奈就只能通过设置不同端口来在同一台电脑上运行两个mysql服务,然后用navicat连接两个数据库,在进行数据传输…
引言 之前在深入了解数据库理论的时候,了解到事物的不同隔离级别可能存在的问题.为了更好的理解所以在MySQL数据库中测试复现这些问题.关于脏读和不可重复读在相应的隔离级别下都很容易的复现了.但是对于幻读,我发现在可重复读的隔离级别下没有出现,当时想到难道是MySQL对幻读做了什么处理? 测试: 创建一张测试用的表dept: CREATE TABLE `dept` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) DEFAULT…
词汇学习 beer [bɪə(r)] n. 啤酒 a glass of beer 一杯啤酒 five glasses of beer 五杯啤酒 beers (种类) Shall we have a beer? 我们要来杯啤酒吗? bread [bred] n. 面包 a loaf of bread 一条面包 take the bread out of sb.'s mouth 砸某人饭碗 cell phone [sel fəun] n. 手机 cell phones (复数) a new cell…
转自:http://keithlan.github.io/2017/06/05/innodb_locks_1/ 锁是MySQL里面最难理解的知识,但是又无处不在. 一开始接触锁的时候,感觉被各种锁类型和名词弄得晕头转向,就别说其他了.本文是通过DBA的视角(非InnoDB内核开发)来分析和窥探锁的奥秘,并解决实际工作当中遇到的问题 锁的种类&概念 想要啃掉这块最难的大骨头,必须先画一个框架,先了解其全貌,才能逐个击破 Shared and Exclusive Locks 1 2 3 4 5 6…
数据库使用锁是为了支持更好的并发,提供数据的完整性和一致性.InnoDB是一个支持行锁的存储引擎,锁的类型有:共享锁(S).排他锁(X).意向共享(IS).意向排他(IX).为了提供更好的并发,InnoDB提供了非锁定读:不需要等待访问行上的锁释放,读取行的一个快照.该方法是通过InnoDB的一个特性:MVCC来实现的. 当一个事务获取了行r的共享锁,那么另外一个事务也可以立即获取行r的共享锁,因为读取并未改变行r的数据,这种情况就是锁兼容.但是如果有事务想获得行r的排它锁,则它必须等待事务释放…
前言 之前在实习时,听了 OOM 的分享之后,就对 Linux 内核内存管理充满兴趣,但是这块知识非常庞大,没有一定积累,不敢写下,担心误人子弟,所以经过一个一段时间的积累,对内核内存有一定了解之后,今天才写下这篇博客,记录以及分享. [OOM - Out of Memory]内存溢出 内存溢出的解决办法: 1.等比例缩小图片 2.对图片采用软引用,及时进行 recycle( ) 操作. 3.使用加载图片框架处理图片,如专业处理图片的 ImageLoader 图片加载框架,还有XUtils 的…
14.3 InnoDB Transaction Model and Locking 14.3.1 InnoDB Lock Modes 14.3.2 InnoDB Record, Gap, and Next-Key Locks 14.3.3 Avoiding the Phantom Problem Using Next-Key Locking 14.3.4 Consistent Nonlocking Reads 14.3.5 Locking Reads (SELECT ... FOR UPDATE…
Chapter 9 Transactions and Concurrency SQL Server默认会把每个单独的语句作为一个事务,也就是会自动在每个语句最后提交事务(可以设置IMPLICIT_TRANSACTIONS来改变此默认行为). 事务的四个属性: 原子性 Atomicity.遇到错误时,SQL Server通常会自动回滚事务(除了一些不太严重的错误比如主键冲突.尝试获取锁超时).(可以通过 @@TRANCOUNT 判断当前是否处于一个事务当中) 一致性 Consistency.指同时…
Mysql中的myisam与innodb的区别? InnoDB存储引擎的四大特性? 什么是事务? 数据库事务的四大特性? 不考虑事务的隔离性,会发生几种问题? MySQL数据库提供的四种隔离级别? 有多少种日志? 事务是如何通过日志来实现的? 数据库的乐观锁和悲观锁是什么? 什么是存储过程?有哪些优缺点? 存储过程与触发器的区别? 索引是什么?有什么作用以及优缺点? 说一说MySQL数据库几个基本的索引类型? 使用索引查询一定能提高查询的性能吗?为什么? 为数据表建立索引的原则有哪些? 什么情况…
一.Mysql体系结构和存储引擎 1. 概念:              数据库:物理操作系统文件或其他形式文件类型的集合.(是文件的集合,是依照某种数据模型组织起来并存放于二级存储器中的数据集合.) 数据库实例:由数据库后台进程/线程以及一个共享内存区域组成.(是应用程序,是位于用户与操作系统之间的一层数据管理软件,用户对数据库的任何操作都是在数据库实例下进行的,应用程序只有通过数据库实例才能和数据库打交道.) 数据库是由一个一个文件组成的,如果要对这些文件执行诸如SELECT.INSERT.…
前言 之前在实习时,听了 OOM 的分享之后,就对 Linux 内核内存管理充满兴趣,但是这块知识非常庞大,没有一定积累,不敢写下,担心误人子弟,所以经过一个一段时间的积累,对内核内存有一定了解之后,今天才写下这篇博客,记录以及分享. [OOM - Out of Memory]内存溢出 内存溢出的解决办法: 1.等比例缩小图片 2.对图片采用软引用,及时进行 recycle( ) 操作. 3.使用加载图片框架处理图片,如专业处理图片的 ImageLoader 图片加载框架,还有XUtils 的…
之前在深入了解数据库理论的时候,了解到事务的不同隔离级别可能存在的问题.为了更好的理解所以在MySQL数据库中测试复现这些问题.关于脏读和不可重复读在相应的隔离级别下都很容易的复现了. 但是对于幻读,我发现在可重复读的隔离级别下没有出现,当时想到难道是MySQL对幻读做了什么处理? 测试: 创建一张测试用的表dept: CREATE TABLE `dept` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) DEFAULT NU…
引言 之前在深入了解数据库理论的时候,了解到事务的不同隔离级别可能存在的问题.为了更好的理解所以在MySQL数据库中测试复现这些问题.关于脏读和不可重复读在相应的隔离级别下都很容易的复现了. 但是对于幻读,我发现在可重复读的隔离级别下没有出现,当时想到难道是MySQL对幻读做了什么处理? 测试: 创建一张测试用的表dept: CREATETABLE`dept`(`id`int(11)NOTNULLAUTO_INCREMENT,`name`varchar(20)DEFAULTNULL,PRIMAR…