![](https://img-blog.csdnimg.cn/20190927151132530.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Synchronized面试
Synchronized面试
绅士jiejie
理想的生活,就是生活的理想!
展开
-
面试官:Synchronized用过么?原理是什么?
相信经过这篇专栏前面几篇的铺垫,读者即使在项目中没用过Synchronized关键字,对它的了解也不亚于项目实战了,而且大多数人也都是浮于使用,只是知道用Synchronized关键字能实现同步,那就用呗,甚至连类锁和对象锁也没分开区别,当然了,会用总是好的,不过面试官可不会只问你用过Synchronized没,只要你用过就肯定会深究的,所以这时能说出其一二原理,自然是大大的好。Synchro...原创 2020-04-07 21:07:03 · 1713 阅读 · 0 评论 -
简单了解下Synchronized代码块加锁和释放锁的JVM指令
示例代码public class TestMain { private Object lock = new Object(); public void get() { synchronized (lock) { System.out.println("get"); } }}通过javap命令把TestMai...原创 2020-02-29 18:12:04 · 934 阅读 · 0 评论 -
两个线程同时访问两个对象的同步方法(synchronized)
示例代码public class TestMain implements Runnable { //格式化 SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @Override public synchronized void run() { Date sa...原创 2020-02-22 13:19:57 · 1047 阅读 · 0 评论 -
两个线程同时访问synchronized修饰的静态方法(synchronized)
示例代码public class TestMain implements Runnable { //格式化 static SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @Override public void run() { method(); ...原创 2020-02-22 13:19:21 · 1045 阅读 · 0 评论 -
两个线程同时访问非同步方法和同步方法(synchronized)
示例代码public class TestMain implements Runnable { //格式化 static SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @Override public void run() { //让线程Thread-0...原创 2020-02-22 13:18:30 · 708 阅读 · 0 评论 -
两个线程同时访问一个对象的静态同步方法和非静态同步方法(synchronized)
示例代码public class TestMain implements Runnable { //格式化 static SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @Override public void run() { //让线程Thread-0...原创 2020-02-22 13:17:46 · 1120 阅读 · 0 评论 -
方法抛出异常后,会释放锁(synchronized)
示例代码public class TestMain implements Runnable { //格式化 static SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @Override public void run() { //让线程Thread-0...原创 2020-02-22 13:15:49 · 3299 阅读 · 0 评论 -
两个线程同时访问一个对象的两个普通同步方法(synchronized)
示例代码public class TestMain implements Runnable { //格式化 static SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @Override public void run() { //让线程Thread-0...原创 2020-02-22 13:15:22 · 1452 阅读 · 2 评论 -
两个线程同时访问一个对象的同步方法(synchronized)
示例代码public class TestMain implements Runnable { @Override public synchronized void run() { System.out.println(Thread.currentThread().getName() + "访问了方法"); long time = System...原创 2020-02-22 13:12:37 · 1367 阅读 · 0 评论 -
synchronized关键字简析
什么是synchronized关键字synchronized,顾名思义就是同步的意思,它是用来保证Java并发安全的一种手段,因为它可以限制一段代码在同一时刻最多只能够被一个线程访问。首先进入被synchronized修饰地方的线程,会先获取到一把锁,之后的其他线程如果要访问这个方法,也需要获取这把锁,可锁只有一把,所以其他线程只能等待持有锁的线程释放锁后,才能去竞争这把锁,从而成功执行代码...原创 2020-02-21 18:00:00 · 304 阅读 · 0 评论