`
Donald_Draper
  • 浏览: 980973 次
社区版块
存档分类
最新评论

锁持有者管理器AbstractOwnableSynchronizer

    博客分类:
  • JUC
JUC 
阅读更多
/*
 * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 *
 * Written by Doug Lea with assistance from members of JCP JSR-166
 * Expert Group and released to the public domain, as explained at
 * http://creativecommons.org/publicdomain/zero/1.0/
 */

package java.util.concurrent.locks;

/**
 * A synchronizer that may be exclusively owned by a thread.  This
 * class provides a basis for creating locks and related synchronizers
 * that may entail a notion of ownership.  The
 * <tt>AbstractOwnableSynchronizer</tt> class itself does not manage or
 * use this information. However, subclasses and tools may use
 * appropriately maintained values to help control and monitor access
 * and provide diagnostics.
 *
 一个线程,可能独占一个同步锁。AbstractOwnableSynchronizer用于表示锁与持有者之间的关系;
AbstractOwnableSynchronizer不管理这种关系;主要是其子类,用于控制或监视锁的状态,提供
帮助。
 * @since 1.6
 * @author Doug Lea
 */
public abstract class AbstractOwnableSynchronizer
    implements java.io.Serializable {

    /** Use serial ID even though all fields transient. */
    private static final long serialVersionUID = 3737899427754241961L;

    /**
     * Empty constructor for use by subclasses.
     */
    protected AbstractOwnableSynchronizer() { }

    /**
     * The current owner of exclusive mode synchronization.
     */
     //独占模式,锁的持有者
    private transient Thread exclusiveOwnerThread;

    /**
     * Sets the thread that currently owns exclusive access. A
     * <tt>null</tt> argument indicates that no thread owns access.
     * This method does not otherwise impose any synchronization or
     * <tt>volatile</tt> field accesses.
     */
     //设置锁持有者
    protected final void setExclusiveOwnerThread(Thread t) {
        exclusiveOwnerThread = t;
    }

    /**
     * Returns the thread last set by
     * <tt>setExclusiveOwnerThread</tt>, or <tt>null</tt> if never
     * set.  This method does not otherwise impose any synchronization
     * or <tt>volatile</tt> field accesses.
     * @return the owner thread
     */
      //获取锁的持有线程
    protected final Thread getExclusiveOwnerThread() {
        return exclusiveOwnerThread;
    }
}
0
0
分享到:
评论

相关推荐

    Java并发篇乐观锁,悲观锁,自旋锁

    自旋锁适用于锁持有时间短且持有者很快释放的场景,避免了线程上下文切换的开销。 4. **synchronized同步锁**: - **核心组件**:Wait Set(等待集合)、Contention List(竞争队列)、Entry List(候选资源队列)...

    基于zookeeper的分布式锁简单实现

    3. **释放锁**:当锁的持有者完成操作后,会删除自己的节点。由于其他客户端监听了这个节点,因此会接收到删除事件,此时序号次小的节点成为新的锁持有者。 4. **异常处理**:Zookeeper提供了Session超时机制,当...

    区块链去中心化自治组织的法律性质——由Token持有者切入.pdf

    Token持有者作为DAO的参与者,虽然在某种程度上承担了风险,但他们往往又不直接参与组织的日常管理,因此,他们所享有的权利和承担的义务需要明确界定。 第三,DAO面临的法律挑战和监管问题。由于DAO具有去中心化和...

    内存泄露检测+锁管理

    进行锁资源管理时,应遵循以下原则:避免死锁,确保每次只有一个线程持有锁,合理设置锁的粒度以平衡并发性能和安全性,以及正确地解锁,防止资源泄漏。在处理内存泄露时,应确保每个动态分配的内存块都有对应的释放...

    线程管理锁

    为了避免这些问题,应遵循一些最佳实践,如最小化锁的持有时间、按顺序加锁、避免嵌套锁等。 在实际编程中,还需要注意线程的创建和销毁、线程间的通信、线程优先级等问题。线程的生命周期管理包括创建线程(`...

    电信设备-可以明确装置持有者权力的信息安全装置.zip

    3. **设备持有者的权力**:在电信环境中,设备持有者通常指的是运营商或服务提供商,他们有权管理和控制设备,确保其正常运行并防止未经授权的访问。信息安全装置能够帮助他们实现这一点,通过权限管理,限制非法...

    数据库安全事务与锁数据库安全事务与锁

    SQL Server 2000的锁管理器会检测和解决死锁,通过回滚其中一个事务来打破循环依赖。 5. **实验验证**: 在实验中,可以通过编写事务程序,观察在更新数据库记录(如courses表中的database课程信息)时,事务如何...

    各种锁汇总,乐观锁、悲观锁、分布式锁、可重入锁、互斥锁、读写锁、分段锁、类锁、行级锁等

    这样可以避免死锁,当一个线程已经持有锁,尝试获取同一锁时,它能再次获得。 5. **互斥锁(Mutex)**:互斥锁确保任何时候只有一个线程访问共享资源,其他线程必须等待。在Java中,`ReentrantLock`是互斥锁的实现...

    Oracle的锁表与解锁

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

    个人编写Android进程管理器源代码,可完美运行

    这个“个人编写Android进程管理器源代码”旨在提供一个自定义的解决方案,帮助开发者更好地理解和控制Android设备上的进程。下面我们将深入探讨Android进程管理的相关知识点,并基于这个源代码进行分析。 一、...

    门锁系统控制

    - 使用说明书:如"酒店智能卡锁管理系统用户使用说明书"文档,会详细介绍系统的安装、配置、操作和故障排查步骤。 - 安装程序:"setup.exe"可能是系统安装程序,用于在计算机上部署门锁系统控制软件。 - PDF文档...

    广联达写锁底层文件e及写锁

    当一个用户尝试编辑项目时,系统会检查该用户的写锁状态,如果当前没有其他用户持有写锁,那么系统会为该用户分配写锁,允许其进行修改。反之,如果已有用户持有写锁,其他用户则只能进行读取操作,不能进行修改,...

    广联达S4锁写锁教程

    2. **锁状态的监控**:了解如何查看当前文件或工作区的锁状态,包括判断是否有其他用户持有写锁,以及锁的有效期限等。 3. **冲突解决策略**:在多人协作环境下,可能会遇到写锁冲突。教程会教你如何处理这类情况,...

    windows 读写锁 (基于关键区的读写锁类 及自动锁)

    总结,Windows中的读写锁通过合理管理读锁和写锁,实现了高效且公平的线程同步。在实现过程中,要注意避免锁竞争和饥饿问题,并利用自动锁提升代码的可读性和安全性。通过持续优化,可以进一步提高多线程环境下的...

    DB2锁相关情况介绍

    DB2提供了多种工具和命令,用于监控和管理锁,包括查看锁的持有者、等待队列、以及死锁信息。这有助于DBA诊断性能问题和优化数据库配置。 #### 八、总结 DB2的锁机制是其并发控制的核心,通过合理配置锁模式和管理...

    数据库锁学习文档

    排他锁允许持有者对锁定资源进行读写操作,但不允许其他用户进行任何操作。共享锁则允许多个用户同时读取同一资源,但不允许写操作。在Oracle数据库中,锁进一步细分为DML锁(数据锁)和DDL锁(字典锁)。DML锁用于...

    sybase锁表检查与解决方法

    如果发现特定表被锁住,通常需要找出持有锁的进程并决定是否需要终止该进程。可以使用`sp_who2`系统存储过程获取当前连接和活动的详细信息: ```sql exec sp_who2 ``` 找到锁定你关注表的进程ID后,可以通过`kill`...

    易语言线程安全之原子锁与读写锁

    读写锁分为读锁和写锁,读锁可由多个线程同时持有,而写锁是独占的,一旦有线程持有了写锁,其他所有线程都无法再获取读锁或写锁。 读写锁的工作原理如下: 1. 当没有线程持有锁时,任何线程都可以获得写锁。 2. 当...

    Deluns酒店智能卡锁管理系统用户使用说明书.doc

    通过以上介绍可以看出,Deluns酒店智能卡锁管理系统不仅能够提供高效的客房门锁管理服务,而且还具有丰富的功能模块来满足酒店管理者的需求。无论是从安全性还是便利性的角度来看,这款系统都是酒店行业不可或缺的一...

Global site tag (gtag.js) - Google Analytics