国产成人AV无码一二三区,少女1到100集,国产精品久久久久精品综合紧,巜公妇之诱感肉欲HD在线播放

文章 > java基础 > synchronized在java中的原理分析

synchronized在java中的原理分析

头像

小妮浅浅

2021-01-09 11:38:002703浏览 · 0收藏 · 0评论

之前讲了一些synchronized的用法,那么对于这些使用的产生,我们要从synchronized的原理中去寻找。就synchronized的使用而言,分为底层原理、同步原理和可重入原理。我们需要在其中分析出synchronized一些锁作用的机制,这里以JVM为切入点,为大家展开其原理的解析。

1.底层原理

对于原理,最好的方式就是深入到JVM中去。我们可以编译看看其字节码文件,再来分析,因此在这里举一个最简单的例子。

public class SynTest11 {
    private Object object = new Object();
    public void test() {
        synchronized(object){
            System.out.println("java的架构师技术栈");
        }
    }
    
}

2.同步原理

数据同步需要依赖锁,那锁的同步又依赖谁?synchronized给出的答案是在软件层面依赖JVM,而j.u.c.Lock给出的答案是在硬件层面依赖特殊的CPU指令。

当一个线程访问同步代码块时,首先是需要得到锁才能执行同步代码,当退出或者抛出异常时必须要释放锁,那么它是如何来实现这个机制的呢?我们先看一段简单的代码:

package com.paddx.test.concurrent;
public class SynchronizedDemo {
    public void method() {
        synchronized (this) {
            System.out.println("Method 1 start");
        }
    }
}

3.可重入原理

在之前曾提到可重入的性质,那么synchronized关键字是如何保证的呢?其是工作是由我们的jvm来完成的,线程第一次给对象加锁的时候,计数为1,以后这个线程再次获取锁的时候,计数会依次增加。同理,任务离开的时候,相应的计数器也会减少。

以上就是synchronized在java中的原理分析,我们可以看出synchronized的使用离不开JVM的配合。理解了本篇synchronized的原理后,在使用时也会更加得心应手。

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

土豆| 《帐篷里的秘密》动漫| 69精品久久久久久久精品A片| 女的高潮过后第二次需要多久恢复| DJ快了又快又骚的POP歌曲| 春闺艳妇(古言)作者:年富一年| 美女和帅哥一起努力生产豆浆的视.| 满18岁免费观看高清电视剧大全| 100张美女光溜溜的背景图片 | 少女配狗视频大全播放| 人野兽马狗猪大全| 美女被捆绑绳子穿过下体 勒胸| 淑婷在公室被躁到高潮观看| 丁香五月色情久久久久| 保姆的特殊待遇5| 美国禁忌2在线观看电视剧| 万能浏览器| 光溜溜美女素材图片| 禁忌3| 9.1在线观看动漫| 姐姐呀姐姐快停下是什么歌曲| 泳装大雷抖动舞蹈视频| 老师脱了内裤让我进去| 无人区免费观看高清电视剧| 无人区6高清免费追剧软件介绍 | 《女仆教育》动漫第一季| 少女自愈骑枕头视频| 《厨房激战5》完整版在线观看| 深入无人区短剧免费高清观看| 不戴套干新婚少妇小琳| 李丽珍| 奇米影视777| 动漫| 《初试云雨情》法国| 耕耘小侄女小说全文免费阅读 | 《如狼似虎的女人》大结局| 穿真空短裙挤公交会被赶走吗 | 凯登·克罗斯| 《黏糊糊的你》动漫免费观看| 真人刺激战场40分钟电视剧| 按摩师把我添高潮了6次