如何检查有多少线程正在等待同步方法解锁

2024-04-28

有什么方法可以检查有多少线程正在等待同步方法解锁?

我想知道线程何时调用同步方法:

1) 有多少线程已经在等待调用该方法?

2)一旦调用该方法,需要等待该方法解锁多长时间?


解决方案: 我使用堆垛机答案解决了这个问题:

public class LockedClass {
    public static int count;
    public static void measuringClass() throws IOException{
        long startTime = System.currentTimeMillis();
        count++;
        System.out.println("Threads waiting="+count);
        lockedMethod(startTime);
        count--;
        System.out.println("Threads waiting="+count);
    }
    public static synchronized void lockedMethod(long startTime) throws IOException{
        System.out.println("I spent="+(System.currentTimeMillis()-startTime)+" in the queue");
        Hashtable<String, String> params = new Hashtable<String, String>();
        params.put("param1", "test");
        params.put("param2", "12345678");
        String sessionId = Common.getSession(Common.executeHttpRequest(params));
    }
}

1)我不相信您的代码可以达到这种级别的可见性。 Java提供了更多强大的并发API http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/package-summary.html它提供了更直接的控制和可见性。作为起点,有一个 Semaphore 类,它有一个方法获取队列长度() http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/Semaphore.html#getQueueLength%28%29听起来这可能就是你想要的。

2)当调用同步方法时,调用线程将等待直到该方法被解锁,需要多长时间取决于带有锁的代码执行其操作所需的时间。当对对象进行 wait() 时,您可以指定超时。我不相信你可以用同步方法做到这一点。

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

如何检查有多少线程正在等待同步方法解锁 的相关文章

  • 相当于 java PBKDF2WithHmacSHA1 的 Python

    我的任务是构建一个 API 的使用者 该 API 需要带有 UNIX 时间种子值的加密令牌 我看到的示例是使用我不熟悉的 Java 实现的 在阅读文档和其他堆栈文章后一直无法找到解决方案 使用javax crypto SecretKey j
  • Java中如何合并两个数组?

    它不是连接而是合并两个数组 使它们成为名称值对的数组 firstarray a aa aaa secondarray b bb bbb result a b aa bb aaa bbb 最好的方法是什么 in Java public sta
  • 如何在.NET 中编写安全/正确的多线程代码?

    今天我必须修复一些使用线程的旧 VB NET 1 0 代码 问题在于从工作线程而不是 UI 线程更新 UI 元素 我花了一些时间才发现可以使用 InvokeRequired 断言来查找问题 除了上面提到的并发修改问题之外 还可能遇到死锁 竞
  • 从 Eclipse 导出后,WAR 文件中缺少一些必要的库 - 为什么?

    我接手了一个大学的项目 其中包含一些 Web 服务 通过将项目导出为 WAR 文件 一些库包含在文件中 例如 Axis2 而另一些则不包含 hibernate JDBC 驱动程序 另外 添加到类路径中的 jar 尚未导出 所有库都位于硬盘驱
  • selenium 2.0 中的 isElementPresent

    大家好 我正在使用 webdriver 所以如果我想使用 selenium s rc 函数 isElementPresent 我必须模拟 selenium rc 所以我会执行以下操作 import org openqa selenium B
  • Java中如何对对象数组进行排序?

    我的数组不包含任何字符串 但它包含对象引用 每个对象引用都通过 toString 方法返回名称 id 作者和发布者 public String toString return name n id n author n publisher n
  • 如何访问EmbeddedSolrServer实例的管理界面?

    在我的网络应用程序中 我正在运行org apache solr client solrj embedded EmbeddedSolrServer出于调试目的 我想访问管理界面 这就是我实例化服务器的方式 new EmbeddedSolrSe
  • 如何对 jar 文件资源使用 File.separator?

    我正在尝试读取位于 jar 文件中的属性文件 我想使用 File separator 因为应用程序将在多个平台上运行 我正在构建路径如下 jarFilePath jar file jarFile getAbsolutePath jarPro
  • 使用 SSL 和代理设置的 Rest 客户端获取连接超时

    我正在使用带有忽略 ssl 的 Rest 客户端 它工作正常 但在将来我尝试使用客户端证书进行的生产中将无法工作 我有 ca 证书和客户端证书 我用它创建了一个客户端 但我收到错误 Exception in thread main com
  • 使用 Microsoft REST API - Java 将 Xbox-Live GamerTag 转换为 XUID

    我有一个 Java 应用程序 它需要能够获取用户输入的 Minecraft Bedrock Edition 玩家标签 并将其转换为给定帐户的 XUID 以便我可以将其存储起来以供稍后列入白名单和参考目的 我一直在浏览 Microsoft R
  • 在 Java 中生成 LaTeX 输出 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有用于从 Java 生成 LaTeX 输出的 Java 库 渲染乳胶 JLatex数学 https
  • Java:从 ScriptEngine javascript 返回一个对象

    我正在尝试使用 Java 来评估 javascript脚本引擎 https docs oracle com javase 7 docs api javax script ScriptEngine html班级 这是我正在尝试做的事情的一个简
  • 检查更新时 Maven 无限期挂起

    我正在使用 Maven 构建一个项目 我是新手 并且它挂起 mvn package INFO Scanning for projects INFO INFO Building Presentation Reports INFO task s
  • 如何在 PuTTY 中保存并运行 Java 文件?

    我是 AWS 亚马逊网络服务 的新手 所以这可能是一个基本问题 我在 AWS 上创建了一个 EC2 实例 我有一台 Windows 计算机 因此我使用 PUTTY 来连接 Linux 实例 连接到我的 EC2 实例后 我使用以下命令编写 J
  • Netty Nio java 中的通信

    我想在 Netty nio 中创建一个具有两个客户端和一个服务器的通信系统 更具体地说 首先 我希望当两个客户端与服务器连接时从服务器发送消息 然后能够在两个客户端之间交换数据 我正在使用本示例提供的代码 https github com
  • Java MYSQL/JDBC 查询从缓存的连接返回过时的数据

    我一直在 Stackoverflow 中寻找答案 但似乎找不到不涉及 Hibernate 或其他数据库包装器的答案 我直接通过 Tomcat 6 Java EE 应用程序中的 MYSQL 5 18 JDBC 驱动程序使用 JDBC 我正在缓
  • c++11 中的 std::thread 问题

    我在尝试从标准模板库编译具有多线程的程序时遇到一些麻烦 当我尝试编译以下程序时 它返回一个晦涩的错误 include
  • Java 执行器和长寿命线程

    我继承了一些使用 Executors newFixedThreadPool 4 的代码运行 4 个长寿命线程来完成应用程序的所有工作 这是推荐的吗 我读过Java 并发实践 https rads stackoverflow com amzn
  • 为什么 OOP 中静态类的最佳实践有所不同?

    我目前正在阅读有关 Java 最佳实践的内容 我发现根据这本书 https rads stackoverflow com amzn click com 0321356683我们必须优先选择静态类而不是非静态类 我记得在 C 最佳实践中 我们
  • Selenium Webdriver - 单击多个下拉菜单时出现陈旧元素异常,而 HTML DOM 不会更改

    我尝试自动化一个场景 其中条件是我必须从下拉列表中选择一个选项 然后它旁边有另一个下拉列表 我必须单击下一个下拉列表中的一个选项才能启用按钮 我尝试使用代码 但它仅单击第一个选项 并显示错误为过时的元素引用 元素未附加到页面文档 请帮忙 如

随机推荐

  • 如何转换 R 中列匹配模式中的值

    我有这个数据框mydf 专栏nucleotide可以有A T G C字母 我想更改字母A to T C to G G to C and T to A 如果strand列是 我该怎么做 mydf lt structure list seqna
  • 使用详细信息和摘要标签作为可折叠内联元素

    我正在努力研究这个问题的解决方案 找到一种方法来实现可折叠按钮 或其他类似对象 这样 它们可以在同一行中使用 单击时 其内容显示在按钮所在行和下一行之间 他们反应敏捷 内容的样式独立于标题 我制作这个 gif 是为了更好地了解我想要获得什么
  • 使用 CSS 检查滚动

    我正在尝试创建一个纯 100 CSS 无 jQuery 返回顶部 按钮 但我希 望该按钮仅在访问者向下滚动页面时显示 是否可以用 CSS 来检查这一点 因此 如果访问者向下滚动一点 则会显示 返回顶部 按钮 Thanks 根据光标位置确定
  • Entity Framework 4.1+ 多对多关系更改跟踪

    如何检测 ICollection 属性的更改 多对多关系 public class Company public virtual ICollection
  • 如何在 Excel VBA 中将 UTF-8 转换为 UTF-16?

    据我所知 Excel使用UTF 16来表示字符串文字 我从控制台 Mac 文件 Windows 读取数据 在这两种情况下 字符编码都是混乱的 我必须找到一个适用于两个平台的解决方案 因此 ADO 流不是一个选项 我进行了一些调试 发现实际字
  • 如何在 python 中 unpickle 托管在 Web URL 中的文件

    pickle 和 unpickle 对象的正常方法如下 腌制一个对象 import cloudpickle as cp cp dump objects open picklefile pkl wb UnPickle 一个对象 加载腌制文件
  • 如何检查 JQuery select 中是否已存在选项

    如何检查 JQuery 的 select 中是否已存在选项 我想动态地将选项添加到 select 中 因此我需要检查该选项是否已经存在以防止重复 如果它已经存在 则评估结果为 true yourSelect option value you
  • 如何自定义锁定屏幕?就像 Android 中的 WaveSecure

    我想做一个像 WaveSecure 一样的演示 它以第三名的成绩赢得了 Android Develop Challenge 2 现在我在自定义锁定屏幕时遇到了问题 所以我想知道WaveSecure是如何实现其锁定功能的 如下图所示 当手机锁
  • 如何在 NSData 中打包结构体? [复制]

    这个问题在这里已经有答案了 可能的重复 通过 GameKit 发送和接收 NSData https stackoverflow com questions 4837102 send and receive nsdata via gameki
  • 我可以简化同一专用网络上计算机的 WebRTC 信号传输吗?

    WebRTC 信号让我发疯 我的用例非常简单 信息亭和控制室网络应用程序之间的双向音频对讲 两台计算机都在同一网络上 两者都无法访问互联网 所有机器都有已知的静态 IP 我读到的所有内容都希望我使用 STUN TURN ICE 服务器 这个
  • 过滤等于或大于某个值的数据的函数

    我有一个包含数千行和列的数据框 行包含基因名称 列包含样本名称 我只想保留 3 个以上样本中包含等于或大于 5 的值的行 到目前为止我已经尝试过 但我不知道如何设置多个条件 data frame1 gt filter all all var
  • 如何在 Java 中将字符串(IP 数字)转换为整数

    例子 using Integer parseInt int i Integer parseInt 123 你会如何做同样的事情 using Integer parseInt int i Integer parseInt 123 45 55
  • 语法分析和语义分析有什么区别?

    据我了解 Parser由词法分析 句法分析和语义分析三个阶段组成 Lexical 它将我的输入分割成标记 例子 123 100 0 gt 123 100 0 语法 它将研究标记并检查它们是否彼此有意义 我遇到的问题是理解最后阶段的 语义解析
  • 使用组合框过滤文本框

    好吧 我必须创建一个表单 它获取文件夹的内容并将其列出在文本框中 是的 文本框不是列表框 然后 我必须使用包含文件夹所有扩展名的组合框来过滤此文本框 例如 如果我在组合框中选择 txt 则文本框应过滤以仅显示所有文本文件 除了让组合框过滤文
  • 在嵌入式 Python 解释器中打印变量

    我编写了一个嵌入 Python 的小型 C 程序 我使用 Py Initialize 和 Py Finalize 正确设置它 并且能够使用 PyRun SimpleString 或 PyRun SimpleFile 运行脚本 但是 我不知道
  • 禁用浏览器状态栏文本

    背景 现代浏览器取消了经典的状态栏 而是在窗口底部绘制一个小工具提示 在悬停 焦点时显示链接目标 下面的屏幕截图说明了这种行为的示例 在我的例子中是不需要的 问题 有没有一种可移植的方法来禁用这些工具提示 在我的特殊情况下 我是否遗漏了这样
  • iOS 触觉反馈未触发

    我正在使用一些 UIGestures 特别是强制触摸 我已经完成了所有这些工作 额外的 UI 更新 动画都可以根据强制触摸进行工作 不过 我想添加硬压机上的触觉反馈 令我沮丧的是 这段代码不起作用 该函数已调用 界面已更新 但没有触觉反馈
  • “类型错误:无法将 'int' 隐式转换为 str”是什么意思?

    def display positive indices strlen print print end for i in range strlen 1 print i end if i strlen print 4 len str i en
  • ECDSA KeyPairGenerator 不可用(但在 JUnit 中有效)

    我遇到了运行 Android 应用程序时观察到的异常 当我将下面的代码作为 JUnit 运行时 它不会发生 java security NoSuchAlgorithmException ECDSA KeyPairGenerator not
  • 如何检查有多少线程正在等待同步方法解锁

    有什么方法可以检查有多少线程正在等待同步方法解锁 我想知道线程何时调用同步方法 1 有多少线程已经在等待调用该方法 2 一旦调用该方法 需要等待该方法解锁多长时间 解决方案 我使用堆垛机答案解决了这个问题 public class Lock