参考 http://www.jb51.net/article/50047.htm 《MySQL行级锁、表级锁、页级锁详细介绍》 页级:引擎 BDB。表级:引擎 MyISAM , 理解为锁住整个表,可以同时读,写不行行级:引擎 INNODB , 单独的一行记录加锁 (更详细的行锁、表锁,可以参考:ht ...
分类:
数据库 时间:
2017-01-16 00:54:58
阅读次数:
199
参考 linux中fcntl()、lockf、flock的区别 这三个函数的作用都是给文件加锁,那它们有什么区别呢? 首先flock和fcntl是系统调用,而lockf是库函数。lockf实际上是fcntl的封装,所以lockf和fcntl的底层实现是一样的,对文件加锁的效果也是一样的。后面分析不同 ...
分类:
系统相关 时间:
2017-01-15 20:19:44
阅读次数:
295
本随笔续接:.NET同步与异步之相关背景知识(六) 在上一篇随笔中已经提到、解决竞争条件的典型方式就是加锁 ,那本篇随笔就重点来说一说.NET提供的最常用的锁 lock关键字 和 Monitor。 一、lock关键字Demo 这一组demo,代码简洁,逻辑简单,一个 AddIndex 方法 保证字段 ...
分类:
Web程序 时间:
2017-01-14 15:55:52
阅读次数:
544
前言 最近在调试EasyNetQ代码的时候发现里面有一段代码,就是IoC容器的简单实现,跟着他的代码敲了一遍,发现了奇妙之处。当然也是因为我才疏学浅导致孤陋寡闻了。他的思路就是通过动态调用构造函数生成对象,然后将对象保存,调用的时候进行单例调用,而且,代码中不会存在 new 字眼。所有实例对象的创建 ...
分类:
其他好文 时间:
2017-01-12 02:31:04
阅读次数:
281
http://www.cnblogs.com/maxupeng/archive/2011/07/21/2112282.html 一、互斥量(mutex) 互斥量本质上是一把锁,在访问共享资源前对互斥量进行加锁,在访问完成后释放互斥量上的锁。 对互斥量进行加锁以后,任何其它试图再次对互斥量加锁的线程将 ...
分类:
编程语言 时间:
2017-01-09 15:13:31
阅读次数:
1892
一、线程安全问题 当多个线程访问某一个类的时候,这个类都能表现出正确的行为,那么这个类就是线程安全的。 synchronized可以加在任意对象及方法上加锁,加锁的这段代码就成为互斥区或者临界区 下面是关于线程安全的一个小示例,关键点就在synchronized这个词上 二、多个线程多把锁 多个线程 ...
分类:
编程语言 时间:
2017-01-08 12:41:45
阅读次数:
218
一,Qt多线程类学习 QThread类,开始一个新的线程就是开始执行重新实现QThread::run(),run()是默认现实调用exec(),QThread::start()开始线程的执行,run()函数是在start()函数调用之后开始执行 QMutex类,互斥量/互斥锁,加锁解锁,原子操作 Q ...
分类:
编程语言 时间:
2017-01-07 15:17:41
阅读次数:
454
方案1: 算法思路:利用名称唯一性,加锁操作时,只需要所有客户端一起创建/test/Lock节点,只有一个创建成功,成功者获得锁。解锁时,只需删除/test/Lock节点,其余客户端再次进入竞争创建节点,直到所有客户端都获得锁。特点:这种方案的正确性和可靠性是ZooKeeper机制保证的,实现简单。 ...
分类:
编程语言 时间:
2017-01-06 22:25:04
阅读次数:
353
今天看到一篇文章,很详细的描述了锁和锁粒度的概念,如下 为什么要加锁?加锁是为了防止不同的线程访问同一共享资源造成混乱。打个比方:人是不同的线程,卫生间是共享资源你在上洗手间的时候肯定要把门锁上吧,这就是加锁,只要你在里面,这个卫生间就被锁了,只有你出来之后别人才能用。想象一下如果卫生间的门没有锁会 ...
分类:
其他好文 时间:
2017-01-05 16:54:15
阅读次数:
148
目前常用的消息队列组建无非就是MSMQ和ActiveMQ,至于他们的异同,这里不想做过多的比较。简单来说,MSMQ内置于微软操作系统之中,在部署上包含一个隐性条件:Server需要是微软操作系统。(对于这点我并去调研过MSMQ是否可以部署在非微软系统,比如:Linux,只是拍脑袋想了想,感觉上是不可 ...
分类:
其他好文 时间:
2017-01-05 13:34:40
阅读次数:
259