码迷,mamicode.com
首页 >  
搜索关键字:加锁    ( 2232个结果
Java多线程系列六——Map实现类
参考资料: https://crunchify.com/hashmap-vs-concurrenthashmap-vs-synchronizedmap-how-a-hashmap-can-be-synchronized-in-java/ https://stackoverflow.com/quest ...
分类:编程语言   时间:2017-07-08 00:24:59    阅读次数:250
c++ 多个线程读一个线程写同步
这种情况一般多个线程读是不需要加锁的。就在写的时候需要加锁。 那么要做的就是让不写的时候,读不受同步限制。让多线程自由的读。 这个时候就要用读写锁 boost已经有读写锁,而c++ 14才有读写锁。 ...
分类:编程语言   时间:2017-07-06 22:03:58    阅读次数:240
共享锁(S锁)和排它锁(X锁)
释义 共享锁:(读取)操作创建的锁。其他用户可以并发读取数据,但任何事物都不能获取数据上的排它锁,直到已释放所有共享锁。 共享锁(S锁)又称为读锁,若事务T对数据对象A加上S锁,则事务T只能读A;其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这就保证了其他事务可以读A,但在T释放A上 ...
分类:其他好文   时间:2017-07-06 21:24:58    阅读次数:266
自旋锁代替互斥锁的实践
原文地址 译文地址 译者:小鱼儿 校对:梁海舰 自旋锁和互斥锁是多线程程序中的重要概念。 它们被用来锁住一些共享资源, 以防止并发访问这些共享数据时可能导致的数据不一致问题。 但是它们的不同之处在哪里? 我们应该在什么时候用自旋锁代替互斥锁? 理论分析 从理论上说, 如果一个线程尝试加锁一个互斥锁的 ...
分类:其他好文   时间:2017-07-06 18:53:55    阅读次数:136
乐观锁和悲观锁
悲观锁:修改数据之前先对该记录加锁,该期间别的线程无法修改该记录,等提交之后其他线程才可以获得锁,例如:数据库行锁,表锁,写锁,都是悲观锁 乐观锁:每次去获取数据不会加锁,但是更新记录的时候会判断一下当前记录是否和自己读取的是否一致,不一致重新读取,再更新,大都是通过版本号判断当前记录和自己读取的记 ...
分类:其他好文   时间:2017-07-05 13:35:15    阅读次数:148
无锁队列的实现
锁是高性能程序的杀手,但是为了保证数据的一致性,在多线程的应用环境下又不得不加锁。但是在某些特殊的场景下, 是可以通过优化数据结构来达到无锁的目的。那么我们就来看一下如何实现一个无锁队列。 队列:众所周知,就是先进先出。 出队列的时候从队列头取出一个结点;入队列的时候,将结点添加到队列尾部。当多线程 ...
分类:其他好文   时间:2017-07-04 11:07:05    阅读次数:169
名不符实的读写锁
有一种单一写线程。多个读线程并发的场景,比方測量数据的读取与更新,消费者会比較多。生产者仅仅有一个。下面图为例: 左側是一种经典的解法,对数据整个操作加锁。为了一个写数据线程,于将全部读线程也进行加锁显然有点浪费了。于是提出读写锁(Reader/Writer Lock), 即使是使用了读写锁。其本质 ...
分类:其他好文   时间:2017-06-27 22:11:26    阅读次数:239
73 并发包简介
ReentrantLock (重入锁) 特点 1可重入(可以多次加锁,多次解锁) 2可限时(可以避免死锁,如果在给给定时间内没有获取到锁,那么就去做其他事情 并且释放自己的资源) 3公平锁(能够按照先后顺序去获取锁 但是会因影响性能) Semaphore(信号量) CountDownLatch (计 ...
分类:其他好文   时间:2017-06-27 20:05:13    阅读次数:129
C++的双重检查锁并不安全(转)
一个典型的单例模式构建对象的双重检查锁如下: 该代码的逻辑是:getSingleObject()函数获得对象,如果对象不存在则创建,反之则直接返回。考虑到线程安全,创建对象时需要加锁(否则可能多线程同时调用该函数时创建多个对象)。同时为了避免线程每次调用getSingleObject()函数时候都要 ...
分类:编程语言   时间:2017-06-26 17:07:32    阅读次数:156
悲观锁与乐观锁
1.悲观锁,每次使用的时候加锁 比如入账交易,一上来查询账户的时候就select * from account where accountid = ? for update; 2.乐观锁,不必每次使用的是时候加锁,而是比如在account表里面增加字段version,使用的时候select * fr ...
分类:其他好文   时间:2017-06-26 15:38:00    阅读次数:108
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!