`
lhc1986
  • 浏览: 160400 次
  • 性别: Icon_minigender_1
  • 来自: 帝都
社区版块
存档分类
最新评论

synchronized线程同步锁定的对象

 
阅读更多

    java使用synchronized加锁是锁定某一对象的引用。


    方法区:方法区加锁要看加锁的方法是属于类实例方法还是类方法即有没有加static标示符,如果没加static则锁定局域变量this(指向所属类实例的引用)。如果加了static则锁定所属类的CLASS对象的引用。


    代码区:代码区域锁定是指定锁定的对象引用。



     ps:关于线程加锁-解锁过程有6步操作,锁定对象先从堆拷贝到线程栈,操作完以后再拷贝到堆,书上写是值拷贝,个人认为引用拷贝也未尝不可,以后再研究。

分享到:
评论

相关推荐

    16.线程的同步机制-synchronized同步方法-多个对象使用多个对象锁.mp4

    在学习Java过程中,自己收集了很多的Java的学习资料,分享给大家,有需要的欢迎下载,希望对大家有用,一起学习,一起进步。

    17.线程的同步机制-synchronized同步方法-synchronized方法锁定的是整个对象.mp4

    在学习Java过程中,自己收集了很多的Java的学习资料,分享给大家,有需要的欢迎下载,希望对大家有用,一起学习,一起进步。

    java 多线程 同步详解

    java 多线程同步详解 synchronized 的使用,锁定对象 ,锁定类 区别

    28.线程的同步机制-synchronized同步语句-synchronized(this)代码块是锁定当前对象.mp4

    在学习Java过程中,自己收集了很多的Java的学习资料,分享给大家,有需要的欢迎下载,希望对大家有用,一起学习,一起进步。

    Java多线程同步Synchronized深入解析

    同步的概念:  同步分为同步方法和同步块两种...  无论你将Synchronized加在方法前还是加在一个变量前,其锁定的都是一个 类对象。每一个对象都只有一个锁与之相关联。  下例中分情况的列举各种情况下的同步效果

    Android多线程之同步锁的使用

    当synchronized作用于函数时,实际上锁的也是对象,锁定的对象就是该函数所在类的对象。而synchronized作用于class时则是锁的这个Class类,并非具体对象。 public class SynchronizedClass { public synchronized ...

    java多线程笔记

    Java线程:概念与原理 2 ...五、 关于同步和锁定的一些问题 41 Java线程:并发协作-线程的交互 47 Java线程:并发协作-生产者消费者模型 52 Java线程:并发协作-死锁 55 Java线程:线程之间的数据传递 58

    BAT面试官有点懵系列,Java多线程你真的理解透彻了吗?带你玩转一次多线程!Let’s go!别再out了!

    Callable 和 Future 创建线程三种创建线程方式做出对比线程生命周期线程控制join线程后台线程线程睡眠线程让步yieId线程优先级控制线程同步的“必要性”synchronized线程同步释放同步监视器锁定Lock对象控制线程同步...

    java笔试题大集合及答案(另附各大公司笔试题)

    65、请说出你所知道的线程同步的方法。 答:wait():使一个线程处于等待状态,并且释放所持有的对象的lock。 sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常...

    java面试题(线程和JSP及EJB部分).pdf

    它会解除由线程获取的所有锁定,而且如果对象处于一种不连贯状态,那么其他线 程能在那种状态下检查和修改它们。结果很难检查出真正的问题所在。suspend()方法容易发生死锁。调用suspend()的 时候,目标线程会停下来...

    线程安全在Java中的应用与实践.pptx.pptx

    synchronized关键字是Java提供的一种内建的同步机制,它可以确保同一时刻最多只有一个线程执行该段代码,从而保证线程安全。 volatile关键字 volatile关键字可以保证变量的可见性,当一个线程修改了volatile变量的值...

    个人总结的深入java多线程开发

    6)同步锁synchronized 13 7)一个程序执行1秒之后自动退出 13 8)线程的状态 14 9)线程阻塞的条件(重要) 14 10) Interrupt()注意事项 16 三. 线程之间协作 17 1)演示简单的消费者和生产者的例子: 17 2)管道的读写流...

    java8集合源码分析-JUC:高并发与多线程

    线程同步 synchronized锁的是对象,不是代码。 锁定方法和非锁定方法可以同步进行 synchronized优化:代码 部分 synchronized底层实现: 早期JDK中,synchronized是重量级的,即需要调用操作系统(OS)来申请锁。 后来...

    Java理论与实践:非阻塞算法简介

    Java语言中主要的同步手段就是synchronized关键字,它强制实行互斥,确保执行synchronized块的线程的动作,能够被后来执行受相同锁保护的synchronized块的其他线程看到。在使用得当的时候,内在锁可以让程序做到线程...

    Java中的同步与互斥机制–synchornized学习

    Java关键字synchronized是Java 语言提供的对多线程和同步的一种机制。synchronized可以作为函数的修饰符,也可作为函数内的语句。它可以作用于instance变量,对象引用(object reference),static函数和类名称字面...

    JavaMultiThread

    volatile只是在线程内存(寄存器)和“主”内存间同步某个变量的值synchronized通过锁定和解锁某个监视器同步所有变量的值。显然synchronized要比volatile消耗更多资源。2).volatile仅能使用在变量级别;synchronized...

    超级有影响力霸气的Java面试题大全文档

    wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。 17、...

    HotspotOverview.pdf

    *当对象被锁定时,mark word 被拷贝到线程栈的建造中的lock record  >又叫做,移位mark *使用原子操作CAS引导尝试使mark word 指向lock record *如果CAS成功,线程获得锁 *如果CAS失败,竞争:锁膨胀(制造heavy-...

    Java各种锁的使用方式及其对比

    Java中使用锁是为了在多线程程序中保证同步访问共享资源的正确性和一致性。在多线程环境下,多个线程可以同时访问共享资源,这可能导致数据的不一致性和错误的结果。例如,如果两个线程同时更新同一个变量,那么可能...

    java 面试题 总结

    wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。 14、Overload...

Global site tag (gtag.js) - Google Analytics