Java 中15种锁的介绍 在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类。介绍的内容如下: 公平锁 / 非公平锁 可重入锁 / 不可重入锁 独享锁 / 共享锁 互斥锁 / 读写锁 乐观锁 / 悲观锁 分段锁 偏向锁 / 轻量级锁 / 重量级锁 自旋锁 上面是很多 ...
分类:
编程语言 时间:
2019-02-19 13:25:01
阅读次数:
141
共享锁:又称为读锁,简称S锁,顾名思义,共享锁就是多个事务对于同一数据可以共享一把锁,都能访问到数据,但是只能读不能修改。 排他锁:又称为写锁,简称X锁,顾名思义,排他锁就是不能与其他所并存,如一个事务获取了一个数据行的排他锁,其他事务就不能再获取该行的其他锁,包括共享锁和排他锁,但是获取排他锁的事 ...
分类:
数据库 时间:
2019-02-12 21:37:06
阅读次数:
239
1、简述python引用计数机制 python垃圾回收主要以引用计数为主,标记-清除和分代清除为辅的机制,其中标记-清除和分代回收主要是为了处理循环引用的难题。 引用计数算法 当有1个变量保存了对象的引用时,此对象的引用计数就会加1 当使用del删除变量指向的对象时,如果对象的引用计数不为1,比如3 ...
分类:
编程语言 时间:
2019-02-09 16:27:53
阅读次数:
219
protected final int tryAcquireShared(int unused) { /* * Walkthrough: * 1. If write lock held by another thread, fail. * 2. Otherwise, this thread is e ...
分类:
其他好文 时间:
2019-02-08 20:02:55
阅读次数:
197
目录 1.锁的分类 2.共享锁和排斥锁 3.乐观锁与悲观锁 五、数据库中的锁 1.锁的分类 2.共享锁和排斥锁 共享锁(读锁) 排斥锁(写锁) 3.乐观锁与悲观锁 (1)悲观锁 总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它 ...
分类:
数据库 时间:
2019-02-08 13:13:43
阅读次数:
171
在java并发包java.util.concurrent中,除了重入锁ReentrantLock外,读写锁ReentrantReadWriteLock也很常用。在实际开发场景中,在使用共享资源时,可能读操作远远多于写操作。这种情况下,如果对这部分共享资源能够让多个线程读的时候不受阻塞,仅仅在写的时候 ...
分类:
其他好文 时间:
2019-02-01 14:55:10
阅读次数:
156
ReetrantLock是独占锁,一次只允许一个线程访问修改共享资源。我们经常会遇到这样的情况,需要经常读取共享资源,少了修改共享资源,这个时候我们用ReentrantLock并发效果就并不是那么nice了。JUC提供了一种读写锁,为我们很好的解决这一种场景: ReadWriteLock支持 读-写 ...
分类:
其他好文 时间:
2019-01-29 00:30:17
阅读次数:
197
偏向锁不像自旋锁、读写锁或者synchronize修饰词这样的同步,它其实是JVM内置的一种锁机制,自JDK1.6后默认启用。换句话说,这种锁不是咱程序员能用代码来瞎操心的,JVM自己会去操心的。真想要瞎操心,就得改JVM的启动参数。 既然无需我们操心,那么了解一下也是好的。偏向锁偏向于第一个获得它 ...
分类:
其他好文 时间:
2019-01-28 20:15:51
阅读次数:
599
重要的并发编程概念:竞态条件、临界区、互斥量;互斥锁:注意事项和建议,死锁,示例代码;读写锁:读写锁规则,示例代码
分类:
其他好文 时间:
2019-01-24 22:59:00
阅读次数:
194
可重入读写锁 ReentrantReadWriteLock
分类:
其他好文 时间:
2019-01-21 11:24:05
阅读次数:
116