事务:是访问并可能更新数据库中各种数据项的一个程序执行单元。是恢复和并发控制的基本单位。具有原子性,一致性,隔离性,持久性。原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。一致性(consistency)。事务必须是使数据库从一个一致性状态.....
分类:
其他好文 时间:
2014-06-27 21:09:13
阅读次数:
194
(一)先看下面这些代码:
class PrettyMenu {
public:
void changeBackground(istream& imgSrc);
private:
Mutex mutex; //由于这个class希望用于多线程环境,所以它有这个互斥器作为并发控制之用
Image* bgImage; //目前的背景图像
int imageChan...
分类:
编程语言 时间:
2014-06-25 08:35:48
阅读次数:
339
代码规模日益增大和基于RTOS的多线程技术使嵌入式软件开发越来越关注“并发控制和线程安全”,当多个执行线程(指正在运行代码的任意上下文,包括线程和中断服务程序)需要访问相同的共享资源时(包括软件数据和硬件资源),就可能因为竞态而导致错误。这种错误容易制造,但很难找到,从设计上保证正确性收益更大。...
分类:
编程语言 时间:
2014-06-14 14:18:36
阅读次数:
389
1.基本概念:sleep,join,yied,优先级.2.进程,线程:独立的内存空间,内存地址,不会相互影响。3.数据结构:(共享资源的软件模拟)-队列,4.并发控制:信号量机制(硬件机制原理),软件实现(锁机制-比如读写分离,基于二维的锁兼容性)5.障碍器,信号量,锁6.CPU密集型--计算,I/...
分类:
编程语言 时间:
2014-06-08 21:38:34
阅读次数:
498
在数据库中,并发控制有乐观锁和悲观锁之间,什么时候用乐观锁比较好什么时候用悲观锁比较好?
实际生产环境里边,如果并发量不大,完全可以使用悲观锁定的方法,这种方法使用起来非常方便和简单。但是如果系统的并发非常大的话,悲观锁定会带来非常大的性能问题,所以就要选择乐观锁定的方法。
悲观锁假定其他用户企图访...
分类:
数据库 时间:
2014-05-31 12:44:38
阅读次数:
252
Nhibernate并发控制【1】悲观并发控制
正在使用数据的操作,加上锁,使用完后解锁释放资源。使用场景:数据竞争激烈,锁的成本低于回滚事务的成本缺点:阻塞,可能死锁【2】乐观并发控制:
所谓乐观,就是乐观的认为其他人没有在用该资源,资源的使用者不加锁。 A 读取数据后,如果该数据被别...
分类:
系统相关 时间:
2014-05-30 05:44:34
阅读次数:
301
事务(Transaction)是并发控制的单位,是用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。通过事务,SQL
Server能将逻辑相关的一组操作绑定在一起,以便服务器保持数据的完整性。在sql server+ .net 开发环境下,有两种方法能够完成事务的...
分类:
数据库 时间:
2014-05-29 09:33:19
阅读次数:
365
InnoDB的MVCC之(乐观锁),是通过在每行记录保存两个隐藏列来实现的。这两个列,一个是存创建时间,一个是删除时间,这里的时间指的是,系统版本号,并不是真正的时间值。每开始一个新的事务,系统版本号都会自动递增。事务开始时刻的系统版本号会作为事务的版本号,用来和查询到的每行记录版本号比较。下面看一...
分类:
数据库 时间:
2014-05-28 03:01:47
阅读次数:
379
微博上众神推荐今年4月刚刚出版的一本书,淘宝华黎撰写的《大型网站系统与Java中间件实践》,一线工程师的作品,实践出真知,果断要看。前两章与《淘宝技术这十年》内容类似,基本是讲从一个小网站如何慢慢升级成分布式网站,从第三章开始亮出干货,个人感觉总结的很好,本文主要摘取并扩充下作者第三章的内容作学习交...
分类:
编程语言 时间:
2014-05-22 02:58:49
阅读次数:
370
当我们在处理一系列线程的时候,当数量达到一定量,在以前我们可能会选择使用NSOperationQueue来处理并发控制,但如何在GCD中快速的控制并发呢?答案就是dispatch_semaphore.
信号量是一个整形值并且具有一个初始计数值,并且支持两个操作:信号通知和等待。当一个信号量被信号通知,其计数会被增加。当一个线程在一个信号量上等待时,线程会被阻塞(如果有必要的话),直至计数器大...
分类:
其他好文 时间:
2014-05-21 09:51:27
阅读次数:
258