Java:如何检查是否可以获得锁? [复制]

2023-11-25

如果我想确保对 Java 中的对象进行独占访问,我可以这样写:

...
Zoo zoo = findZoo();
synchronized(zoo)
{
    zoo.feedAllTheAnimals();
    ...
}

有没有办法检查对象当前是否被锁定?如果另一个线程正在访问,我不希望我的线程等待zoo. If zoo未锁定,我希望我的线程获取锁并执行synchronized堵塞;如果没有,我希望它跳过它。

我怎样才能做到这一点?


您无法使用 Java 中嵌入的低级本机同步来做到这一点。但您可以使用并发包中提供的高级 API 来完成此操作。

Lock lock = new ReentrantLock();
....
//some days later
....
boolean isLocked = lock.tryLock();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java:如何检查是否可以获得锁? [复制] 的相关文章

  • 带有 Android 支持库 v7 的 Maven Android 插件

    我使用 maven android plugin 构建我的 android 应用程序 它依赖于 android 支持库 v4 和 v7 由于我没有找到如何从developer android com下载整个sdk 因此我无法使用maven
  • Oracle Java 教程 - 回答问题时可能出现错误

    我是 Java 新手 正在阅读 Oracle 教程 每个部分之后都有问题和答案 我不明白一个答案中的一句话 见下面的粗体线 来源是https docs oracle com javase tutorial java javaOO QandE
  • Base36 编码字符串?

    我一直在网上查找 但找不到解决此问题的方法 在 Python Ruby 或 Java 中 如何对以下字符串进行 Base 36 编码 nOrG9Eh0uyeilM8Nnu5pTywj3935kW 5 Ruby 以 36 为基数 s unpa
  • 如何使用 JAVA 代码以编程方式捕获线程转储?

    我想通过 java 代码生成线程转储 我尝试使用 ThreadMXBean 为此 但我没有以正确的格式获得线程转储 因为我们正在使用jstack命令 请任何人提供一些帮助 他们是否有其他方式获取线程转储 使用任何其他 API 我想要的线程转
  • 如何在多进程系统中实现锁定?

    我们正在并行运行许多詹金斯项目 我们使用 python 并且选择使用 pyenv 管理虚拟环境 不幸的是 pyenv 有一个众所周知的竞争条件 https github com yyuu pyenv issues 174 为了解决这个问题
  • 将SQL数据引入jquery availabletag

    我正在尝试制作自动完成文本框 但如何将 SQL 数据包含到 jquery 可用标记并循环它 我无法根据以下代码执行该功能 任何帮助 将不胜感激 谢谢 这是我的预期输出 预期结果演示 http jsfiddle net VvETA 71 jq
  • 文本在指定长度后分割,但不要使用 grails 打断单词

    我有一个长字符串 需要将其解析为长度不超过 50 个字符的字符串数组 对我来说 棘手的部分是确保正则表达式找到 50 个字符之前的最后一个空格 以便在字符串之间进行彻底的分隔 因为我不希望单词被切断 public List
  • Logback:SizeAndTimeBasedRollingPolicy 不遵守totalSizeCap

    我正在尝试以一种方式管理我的日志记录 一旦达到总累积大小限制或达到最大历史记录限制 我最旧的存档日志文件就会被删除 当使用SizeAndTimeBasedRollingPolicy在 Logback 1 1 7 中 滚动文件追加器将继续创建
  • 为自定义驱动程序创建 GraphicsDevice

    我正在开发一个在嵌入式系统中使用 Java 的项目 我有用于屏幕和触摸输入的驱动程序 以及用于文本输入的虚拟键盘 我的屏幕驱动程序有一个Graphics2D您可以绘制的对象和repaint Rectangle 更新方法 类似地 触摸驱动器能
  • Java中的断点和逐步调试?

    抱歉我的问题名称很奇怪 我不知道如何寻找这个 因为我不知道这些东西是如何称呼的 Visual Studio 中至少有一个功能 您可以单击代码左侧并设置一个大红点的起点 然后运行程序 您可以通过按 f8 或 f5 实际上是不同的 f 来跟踪步
  • 如何通过注解用try-catch包装方法?

    如果应该在方法调用中忽略异常 则可以编写以下内容 public void addEntryIfPresent String key Dto dto try Map
  • org/codehaus/plexus/archiver/jar/JarArchiver(不支持的major.minor版本49.0)-Maven构建错误

    下午大家 我在尝试构建项目时收到上述错误 我很确定这与使用 Java 1 6 编译的 Maven 最新更新有关 而我们尝试构建的项目是 1 4 项目 在此之前的插件工作没有问题 因此我将以下内容添加到 POM xml 文件中以尝试强制使用现
  • 用于缓存的 Servlet 过滤器

    我正在创建一个用于缓存的 servlet 过滤器 这个想法是将响应主体缓存到memcached 响应正文由以下方式生成 结果是一个字符串 response getWriter print result 我的问题是 由于响应正文将不加修改地放
  • 在 Clojure 中解压缩 zlib 流

    我有一个二进制文件 其内容由zlib compress在Python上 有没有一种简单的方法可以在Clojure中打开和解压缩它 import zlib import json with open data json zlib wb as
  • Karaf / Maven - 无法解决:缺少需求 osgi.wiring.package

    我无法在 Karaf 版本 3 0 1 中启动捆绑包 该包是使用 Maven 构建的并导入gson http mvnrepository com artifact com google code gson gson 2 3 1 我按照要求将
  • 避免 Java 中的重复导入:继承导入?

    有没有办法 继承 导入 Example 常见枚举 public enum Constant ONE TWO THREE 使用此枚举的基类 public class Base protected void register Constant
  • 如何在多线程应用程序中安全地填充数据并 Refresh() DataGridView?

    我的应用程序有一个 DataGridView 对象和一个 MousePos 类型的列表 MousePos 是一个自定义类 它保存鼠标 X Y 坐标 类型为 Point 和该位置的运行计数 我有一个线程 System Timers Timer
  • 无需登录即可直接从 Alfresco 访问文件/内容

    我的场景是这样的 我有一个使用 ALFRESCO CMS 来显示文件或图像的 Web 应用程序 我正在做的是在 Java servlet 中使用用户名和密码登录 alfresco 并且我可以获得该登录的票证 但我无法使用该票证直接从浏览器访
  • 禁用 Android 菜单组

    我尝试使用以下代码禁用菜单组 但它不起作用 菜单项仍然启用 你能告诉我出了什么问题吗 资源 菜单 menu xml menu menu
  • Hadoop NoSuchMethodError apache.commons.cli

    我在用着hadoop 2 7 2我用 IntelliJ 做了一个 MapReduce 工作 在我的工作中 我正在使用apache commons cli 1 3 1我把库放在罐子里 当我在 Hadoop 集群上使用 MapReduceJob

随机推荐

  • 我需要什么权限才能从 Android 应用程序访问互联网?

    运行我的应用程序时出现以下异常 java net SocketException Permission denied maybe missing INTERNET permission 如何解决权限缺失的问题 Add the INTERNE
  • 设置断点并调试评估的 JavaScript

    I am using client side JS to parse XML files and generate complex JS code to eval as a result Generating re usable funct
  • git-apply 或 git-am 应该得出相同的哈希值吗?

    我想我错过了一些东西 我的印象是 git 使用 SHA 1 哈希提交标识符意味着可以确定从其他人那里获得的该提交的补丁没有被更改 进行我在我的机器上所做的测试 显然 姓名和电子邮件已更改 cd dogcatcher dogcatcher g
  • Python 3 asyncio 与 aioboto3 似乎是连续的

    我正在将一个简单的 python 3 脚本移植到 AWS Lambda 该脚本很简单 它从十几个 S3 对象收集信息并返回结果 使用的脚本multiprocessing Pool并行收集所有文件 尽管multiprocessing不能在 A
  • StatusCodeException 对比GWT 中的运行时异常

    在我的 GWT 应用程序中 我重写了 RemoteServiceServlet 以在调用服务方法之前检查会话是否有效 我试图从服务器抛出 RuntimeException expired session 我希望客户端从 asynccallb
  • Python Tkinter 文本区域将光标设置为结束

    我有一个 TkinterText 对象 我使用以下方法向其添加行 insert END string 当文本填充可用区域时 我希望它向下滚动以显示视图中文本的底行 但它不会滚动 意味着用户必须滚动自己才能看到最新的文本 我已经看过了mark
  • setuid 和 seteuid 函数的区别

    程序 1 setuid 示例 include
  • 从 .NET Windows 服务调用 Shell32.dll

    我有一个 NET 4 0 库 它使用 Shell32 和 Folder GetDetailsOf 从 WTV 文件获取元数据 我已成功地将它与控制台和 Windows 窗体应用程序一起使用 没有出现任何问题 但由于某种原因 当从 NET 4
  • 为什么 sed 替换 + 重定向删除了我的文件?

    我正在使用 sed 搜索并替换 bash 文件中的两个字符串 GNU sed 这是之后的文件 rw r r 1 websync www data 4156 mar 27 12 56 home websync tmp sitio oficia
  • 在哪里可以获取有关 JavaScript 函数的对象参数语法的信息?

    如果我想调用这样的函数 moo a 4 通常我必须这样表述我的函数定义 function moo myArgObj print myArgObj a 但是这个很棒的语法在 Spidermonkey 中用于定义函数是完全有效的 functio
  • GAS 性能比其他服务器端 JavaScript 慢

    正在研究一个Google Sites网站 它从电子表格中获取数据并动态构建多个图表 我提到 Google Apps 脚本运行速度相当慢 我分析了代码并对其进行了优化 方法是使用Cache服务 只要有可能 优化后 图表代码大约需要花费时间 3
  • 仅授予对 postgreSQL 中一个模式的访问权限

    我有一个用户just one schema user 在我的数据库中 我有两个模式 public and sample 我怎样才能让这个用户只看到sample 这就是我所做的 GRANT USAGE ON SCHEMA sample TO
  • 如何判断两个物体是否相交?

    我使用以下代码来创建对象并为其设置动画 For creating two imageview UIImageView bbl1Obj UIImageView alloc initWithFrame CGRectMake 34 77 70 7
  • Codeigniter 中的挂钩

    如何在 CodeIgniter 中仅调用少数控制器而不是所有控制器的钩子 例如 我只想为管理部分运行挂钩 我怎样才能实现这个目标 在您希望有选择地运行的挂钩中 您可以使用以下命令访问 ci 超级对象 this gt ci get insta
  • CKEditor 4 - 如何设置默认字体?

    我使用 CKEditor 4 我想设置默认字体 我用我的字体选择添加了 font defaultLabel 但它不起作用 我在互联网上找到了这个解决方案 但这对我来说是一个技巧 而不是真正的解决方案 CKEDITOR on instance
  • 如果记录存在,则更新,否则插入

    我正在尝试在两个 SQL Server 2008 表之间移动一些数据 如果表 2 中存在包含表 1 中的电子邮件的记录 则使用表 1 中的数据更新该记录 否则插入新记录 在表 1 中 我有很多列 名字 姓氏 电子邮件等 我不太确定如果表 1
  • 使用 WinSCard 获取 PCSC 读卡器序列号

    如果读卡器中没有卡 我在获取 PCSC 读卡器序列号时遇到问题 我正在使用winscard dll 和c 以下代码仅适用于读卡器中存在卡的情况 否则 不会检索 SCardHandle 我还没有找到任何其他方式来获取 SCardHandle
  • Firestore REST API 数据库监听

    您知道如何使用 REST API 设置 Firestore 监听吗 这是我的尝试 url https firestore googleapis com v1beta1 projects project name databases defa
  • 尝试访问 C 中字符串上的字符时出现总线错误

    我已经多次使用这行代码 更新 当字符串是函数的参数时 但是当我现在尝试这样做时 我收到总线错误 无论是使用 gcc 还是 clang 我正在重现最简单的代码 char string this is a string char p strin
  • Java:如何检查是否可以获得锁? [复制]

    这个问题在这里已经有答案了 如果我想确保对 Java 中的对象进行独占访问 我可以这样写 Zoo zoo findZoo synchronized zoo zoo feedAllTheAnimals 有没有办法检查对象当前是否被锁定 如果另