写在前面上一篇文章共享资源那么多,如何用一把锁保护多个资源?文章我们谈到了银行转账经典案例,其中有两个问题:单纯的用synchronized方法起不到保护作用(不能保护target)用Account.class锁方案,锁的粒度又过大,导致涉及到账户的所有操作(取款,转账,修改密码等)都会变成串行操作如何解决这两个问题呢?咱们先换好衣服穿越回到过去寻找一下钱庄,一起透过现象看本质,dengdengd
分类:
其他好文 时间:
2020-08-02 10:24:28
阅读次数:
91
#java面试题2020 百度第一篇 ##一面 1.手写ArrayList 2.手写进制转换算法,求出一个数的二进制数 1 的个数 3.JAVA 基础,equals 和== 4.多线程方式、threadlocal,各种锁,synchronized 和 lock 5.设计模式、spring 类加载方式 ...
分类:
编程语言 时间:
2020-07-29 21:16:52
阅读次数:
78
偏向锁入口 synchronized分为synchronized代码块和synchronized方法,其底层获取锁的逻辑都是一样的。 要找到锁的入口,就要找到代码中对monitorenter指令解析的地方。在HotSpot中有两处对monitorenter进行了解析:一个是在bytecodeInte ...
分类:
其他好文 时间:
2020-07-29 12:44:29
阅读次数:
63
前言 个人珍藏的80道Java多线程/并发经典面试题,因为篇幅太长,现在先给出1-10的答案解析哈,后面一起完善,并且上传github哈~ ? https://github.com/whx123/JavaHome ? 「公众号:捡田螺的小男孩」 1. synchronized的实现原理以及锁优化? ...
分类:
编程语言 时间:
2020-07-29 10:36:49
阅读次数:
92
状态1:新建一个线程并且开启start()方法,使Java线程和操作系统线程联系起来; 状态2:Running——Waiting :调用wait方法 synchronized(lock){ lock.wait(); //进入waiting状态,释放锁 } synchronized(lock){ lo ...
分类:
编程语言 时间:
2020-07-28 22:50:50
阅读次数:
107
参考:https://juejin.im/post/5d5374076fb9a06ac76da894#heading-8 synchronized,是解决并发情况下数据同步访问问题的一把利刃,也是面试经常闻到的一个知识点。那么synchronized的底层原理是什么呢? Synchronized的使 ...
分类:
其他好文 时间:
2020-07-28 00:22:44
阅读次数:
78
JAVA锁分类Java中锁有多重分类方式,根据粒度可分为:重量锁、轻量锁、偏向锁、分段锁;根据锁获取公平性又分为:公平锁、非公平锁。根据策略又分为:乐观锁、悲观锁、自旋锁;根据不同的分类还有:共享锁、独占锁、可重入锁、互斥锁等概念。重量级锁Synchronized是通过对象内部的一个叫做监视器锁(monitor)来实现的。但是监视器锁本质又是依赖于底层的操作系统的MutexLock来实现的。而操作
分类:
编程语言 时间:
2020-07-27 10:01:22
阅读次数:
98
一、什么时候使用synchronized关键字 在多线程编程永远都逃不开线程安全的问题,影响线程安全的因素主要有两:1、存在共享数据;2、多线程共同操作共享数据。关键字synchronized可以保证在同一时刻,只有一个线程可以执行某个方法或某个代码块,同时synchronized可以保证一个线程的 ...
分类:
编程语言 时间:
2020-07-24 10:02:21
阅读次数:
65
可重入锁 可重锁是指同一个线程,外层函数获取锁后,内层函数可以自动获取到锁。 java中synchronized和ReentrantLock都是可重入锁。 对于synchronized,其实现机制有jvm实现。 对于ReentrantLock,其继承自父类AQS,其父类AQS中维护了一个同步状态st ...
分类:
编程语言 时间:
2020-07-23 22:39:26
阅读次数:
64
当程序更新一个变量时,如果多线程同时更新这个变量,可能得到期望之外的值,比如变量i=1,A线程更新i+1,B线程也更新i+1,经过两个线程操作之后可能i不等于3,而是等于2。因为A和B线程在更新变量i的时候拿到的i都是1,这就是线程不安全的更新操作,通常我们会使用synchronized来解决这个问 ...
分类:
编程语言 时间:
2020-07-23 01:47:26
阅读次数:
97