专栏首页JavaEdgeJava同步器之AbstractOwnableSynchronizer详解

Java同步器之AbstractOwnableSynchronizer详解

JDK 6 时提供。 一种同步器,可以由一个线程独占。该类提供了创建锁和相关同步器的基础,这些同步器可能包含所有权的概念。AbstractOwnableSynchronizer类本身并不管理或使用这些信息。但是,子类和工具可以使用适当维护的值来帮助控制和监视访问并提供诊断。

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;

    /**
     * 
     * 设置当前拥有独占访问权的线程。
     * null参数表示没有线程拥有访问权。
     * 否则,此方法不会强制任何同步或易失性字段访问。
     * @param thread 持有者线程
     */
    protected final void setExclusiveOwnerThread(Thread thread) {
        exclusiveOwnerThread = thread;
    }

    /**
     * Returns the thread last set by {@code setExclusiveOwnerThread},
     * or {@code null} if never set.  This method does not otherwise
     * impose any synchronization or {@code volatile} field accesses.
     * @return the owner thread
     */
    protected final Thread getExclusiveOwnerThread() {
        return exclusiveOwnerThread;
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Spring Http源码

    /* Copyright 2002-2017 the original author or authors. Licensed under the Apac...

    公众号-JavaEdge
  • Java编程思想第五版(On Java8)(十)-接口

    这种机制在编程语言中不常见,例如 C++ 只对这种概念有间接的支持。而在 Java 中存在这些关键字,说明这些思想很重要,Java 为它们提供了直接支持。

    公众号-JavaEdge
  • HttpServletRequest小结

    该对象是有Web服务器创建的,每一次请求都会创建一次。其作用是将HTTP请求封装成一个类,供Servlet处理。

    公众号-JavaEdge
  • gevent初探

    有很多Python语言的协程库,如:tornado、asyncio等。这些库在使用时需要使用特定的语法,如:async/await,对于非协程的代码需要改写才能...

    drunkdream
  • 一文带你搞懂RPC核心原理

    在传输过程中,RPC并不会把请求参数的所有二进制数据整体一下子发送到对端机器上,中间可能会拆分成多个数据包,也有可能合并成其他请求的数据包。RPC协议就是为了"...

    公众号_松华说
  • 带你深入了解Java线程中的那些事

    引言 说到Thread大家都很熟悉,我们平常写并发代码的时候都会接触到,那么我们来看看下面这段代码是如何初始化以及执行的呢? public class Thre...

    Java架构
  • 面经手册 · 第19篇《Thread.start() ,它是怎么让线程启动的呢?》

    刚开始听这句话还在上学,既不卓越、也不优秀,甚至可能还有点笨!但突然从某次爬到班级的前几名后,开始喜欢上了这种感觉,原来前面的风景是如此灿烂?!

    小傅哥
  • Java基础笔记整理---【01】cmd操作命令

    WIN+ R 输入 “cmd“,按下ENTER,打开cmd 部分命令操作: cd 切换目录 cd\ 回到根目录 cd 文件夹名称 打开文件夹 cd ....

    李志伟
  • 10.vue打包成docker镜像

    192.168.9.233/library/nginx:1.12 是我的私有库,可以使用公有的库

    suveng
  • 通过micrometer实时监控线程池的各项指标

    最近的一个项目中涉及到文件上传和下载,使用到JUC的线程池ThreadPoolExecutor,在生产环境中出现了某些时刻线程池满负载运作,由于使用了Calle...

    Throwable

扫码关注云+社区

领取腾讯云代金券