`

“类锁”和对象锁

    博客分类:
  • java
 
阅读更多

假设我有一个类ClassA,其中有一个方法synchronized methodA(),那么当这个方法被调用的时候你获得就是对象锁,但是要注意,如果这个类有两个实例,比如:ClassA a = new ClassA();ClassA b = new ClassA();那么如果你在a这对象上调用了methodA,不会影响b这个对象,也就是说对于b这个对象,他也可以调用methodA,因为这是两对象,所以说对象锁是针对对象的。而类锁,其实没有所谓的类锁,因为类锁实际上就是这个类的对象的对象锁,还是举例,我有一个类ClassA,其中有一个方法synchronized static methodA(),注意这个方法是静态的了,那就是说这个类的所有的对象都公用一个这个方法了,那如果你在这个类的某个对象上调用了这个方法,那么其他的对象如果想要用这个方法就得等着锁被释放,所以感觉就好像这个类被锁住了一样。

 

REFS:http://blog.csdn.net/ningguixin/article/details/7729195

分享到:
评论

相关推荐

    synchronized枷锁实例

    在Java编程语言中,`synchronized`...理解类锁、对象锁和方法锁的用法,以及它们之间的关系,对于编写高效、安全的多线程Java程序至关重要。通过SynchronizedDemo这个示例代码,我们可以进一步学习和实践这些概念。

    ABAP 锁对象与加锁机制

    当激活锁对象的时候,系统会自动创建两个 FM,ENQUEUE_锁对象名和 DEQUEUE_锁对象名,分别用来锁定和解锁。当用逻辑锁来锁定表条目的时候,系统会自动向 LOCK TABLE 中写入记录。 锁定和解锁的步骤是:先上锁,上锁...

    Java对象锁和类锁全面解析(多线程synchronize

    Java对象锁和类锁是Java多线程编程中至关重要的概念,它们是通过`synchronized`关键字来实现的,用于确保代码在并发环境下的线程安全。在这个全面解析中,我们将深入探讨这两个锁机制,理解它们的工作原理以及如何在...

    java多线程的条件对象和锁对象demo

    本示例"java多线程的条件对象和锁对象demo"着重探讨了如何利用锁对象和条件对象来精细控制线程的执行流程。 首先,我们需要了解Java中的锁对象。Java提供了多种类型的锁,其中最基础的是`synchronized`关键字,它...

    SyncronizedUseDemo:对象锁和类锁的区别

    SyncronizedUseDemo对象锁和类锁的区别使用对象锁的情况,只有使用同一实例的线程才会受锁的影响,多个实例调用相同方法也不会受到影响。类锁是所有线程共享的锁,所以相同时刻,只能有一个线程使用加了锁的方法或...

    快速查找oracle锁对象

    在Oracle数据库管理中,"快速查找Oracle锁对象"是一个关键任务,特别是在处理并发事务和解决性能问题时。当多个用户或进程同时访问同一资源时,可能会出现锁冲突,导致某些事务等待,影响数据库的正常运行。了解如何...

    透彻理解Java中Synchronized(对象锁)和Static Synchronized(类锁)的区别

    Java 中 Synchronized(对象锁)和 Static Synchronized(类锁)的区别 Synchronized 和 Static Synchronized 是 Java 中两种同步机制,它们都用于解决多线程并发访问的安全问题。然而,它们之间存在着本质的区别。...

    synchronized用法大全实例

    本实例大全将全面解析`synchronized`的使用方式,包括同步方法、同步语句块、类锁和对象锁。 ### 1. 同步方法 同步方法是通过在方法声明前加上`synchronized`关键字实现的。这样,同一时间只有一个线程可以执行该...

    java多线程介绍

    `synchronized` 分为类级别和对象级别,即类锁和对象锁。类锁是针对静态方法的,只有一个,而对象锁是针对非静态方法或者同步代码块的,每个实例对象有一把对象锁。当一个线程在执行同步方法或同步代码块时,其他...

    详解java 对象锁与类锁

    总结来说,Java中的对象锁和类锁是多线程编程中的基础工具,它们提供了必要的同步机制,确保并发访问的正确性和数据一致性。选择使用哪种锁取决于你需要保护的数据和资源的范围,以及对并发性能的需求。在实际开发中...

    [并发并行]_[初级]_[C++实现sychronized方式的对象锁]

    在IT行业中,尤其是在多线程编程领域,"并发并行"是至关...总之,理解和掌握C++中的并发编程技术,尤其是对象锁的实现,是提升软件性能和可靠性的关键步骤。通过不断学习和实践,你将在面对多线程挑战时更加游刃有余。

    互斥对象锁和临界区锁性能比较

    本文将深入探讨两种常见的同步原语——互斥对象锁(Mutex)和临界区(Critical Section),并对比它们的性能和适用场景。 首先,我们来了解什么是互斥对象锁。互斥锁是一种用于保护共享资源的同步机制,它确保同一...

    封装好了的互斥锁类

    在这里,程序员会具体实现如何创建和管理Windows互斥锁对象,并确保在适当的时候调用WinAPI中的`CreateMutex`,`WaitForSingleObject`,`ReleaseMutex`等函数。 `Function.cpp`和`Function.h`可能包含了使用`...

    java锁详解.pdf

    Java 锁可以分为两大类:synchronized 锁和 ReentrantLock 锁。 一、Synchronized 锁 1. 锁的原理:synchronized 锁是基于对象头的 Mark Word 来实现的。Mark Word 中有一个锁标志位,用于标识对象的锁状态。 2. ...

    Java中的锁分类与使用.docx

    - **读写锁**(如ReadWriteLock)进一步细分为读锁和写锁,读锁可被多个线程共享,写锁是独占的,提高了读操作的并发性。 4. **可重入锁** - 可重入锁允许同一个线程多次获取同一把锁,例如Java的`synchronized`...

    Oracle的锁表与解锁

    本文将深入探讨Oracle中的锁机制,特别是如何锁表与解锁,以及相关的SQL查询语句,帮助数据库管理员和开发人员更好地理解和管理Oracle数据库的锁状态。 #### 锁的类型 在Oracle中,锁主要分为两种类型: 1. **TX...

    Java虚拟机中对象探秘--对象头创建、对象头、对象锁、synchoronized底层实现.docx

    锁的状态有无锁、偏向锁、轻量级锁和重量级锁。在无锁状态下,Mark Word中存储对象的哈希码等信息。当锁升级时,锁状态标志位会改变,如转变为指向 Monitor Object 的指针,Monitor Object 是由monitorenter和...

    synchronized锁原理分析(一、从Java对象头看synchronized锁的状态)

    《深入剖析synchronized锁原理——从Java对象头的角度》 synchronized关键字在Java中扮演着重要的角色,它是Java实现同步的基础,确保了多线程环境下的数据一致性。不同于基于JDK实现的Lock接口(如ReentrantLock)...

    59 对MySQL锁机制再深入一步,共享锁和独占锁到底是什么?l.pdf

    在MySQL中,最基本和常见的两种锁类型是共享锁(Shared Lock)和独占锁(Exclusive Lock),也被简称为S锁和X锁。 共享锁(S锁)允许事务读取一行数据,其他事务也可以同时读取这行数据,但不能修改。也就是说,...

Global site tag (gtag.js) - Google Analytics