Wesley13 Wesley13
3年前
java 面试知识点笔记(十二)多线程与并发
问:synchronized和ReentrantLock的区别?ReentrantLock(可重入锁)位于java.util.concurrent.locks包(著名的juc包是由Douglea大神写的AQS抽象类框架衍生出来的应用)和CountDownLatch、FutureTask、Semaphore一样基于AQS实现
Easter79 Easter79
3年前
synchronized 的实现原理
!(http://www.liebrother.com/upload/ef1e31512ff14b5da181fc36f9190e16_20171113.jpg)加不加synchronized有什么区别?(https://my.oschina.net/liebrother/blog/4253687)synchronized作为悲观锁,
Wesley13 Wesley13
3年前
java try后没有catch,只有finnally
今天看jdk1.6源码  ThreadPoolExecutor中Worker的runTask方法  catch(RunTimeExceptionex)中tthrowex,会把ex抛到上层,上层try没有catch异常,该异常还会往上层抛,try后直接跟finnally,finnally中runLock.unlock(),会释放锁;总结:
Stella981 Stella981
3年前
AQS (AbstractQueuedSynchronizer)源码导读:锁的获得与释放
AQS是什么?AbstractQueuedSynchronizer简称AQS是一个抽象同步框架,可以用来实现一个依赖状态的同步器。Providesaframeworkforimplementingblockinglocksandrelatedsynchronizers(semaphores,events,etc)th
Stella981 Stella981
3年前
ConcurrentHashmap 解析
ConcurrentHashmap(JDK1.7) 总体描述:  concurrentHashmap是为了高并发而实现,内部采用分离锁的设计,有效地避开了热点访问。而对于每个分段,ConcurrentHashmap采用final和内存可见修饰符volatile关键字(内存立即可见:Ja
Wesley13 Wesley13
3年前
ubuntu 15.10 gnome 取消 挂起时锁屏
打开dconf系统配置编辑器搜索suspend取消勾选ubuntulockonsuspend.!(http://static.oschina.net/uploads/space/2015/1210/230110_qcqz_237198.png)如果要在右上角的电源菜单中显示suspend按钮的话,使用firef
Wesley13 Wesley13
3年前
MySql 三大知识点——索引、锁、事务
作者:莫那鲁道原文:http://thinkinjava.cn/2019/03/16/20190316mysql/1\.索引索引,类似书籍的目录,可以根据目录的某个页码立即找到对应的内容。索引的优点:1.天生排序。2.快速查找。索引的缺点:1.占用空间。2.降低更新表的速度。注意点:小表使用全表扫
Wesley13 Wesley13
3年前
4种常用Java线程锁的特点,性能比较及使用场景
多个线程同时对同一个对象进行读写操作,很容易会出现一些难以预料的问题。所以很多时候我们需要给代码块加锁,同一时刻只允许一个线程对某个对象进行操作。多线程之所以会容易引发一些难以发现的bug,很多时候是写代码的程序员对线程锁不熟悉或者干脆就没有在必要的地方给线程加锁导致的。本篇我想分享java多线程中的4种常见线程锁的特点、性能比较及使用场景。一、多线
ReentrantLock源码解析 | 京东云技术团队
并发指同一时间内进行了多个线程。并发问题是多个线程对同一资源进行操作时产生的问题。通过加锁可以解决并发问题,ReentrantLock是锁的一种。
京东云开发者 京东云开发者
2星期前
加锁失效,非锁之过,加之错也
作者:京东零售邢成引言多个进程或线程同时(或着说在同一段时间内)访问同一资源会产生并发问题。银行两操作员同时操作同一账户就是典型的例子。比如A、B操作员同时读取一余额为1000元的账户,A操作员为该账户增加100元,B操作员同时为该账户减去50元,A先提交