首页 / 知识
关于java:JVM包含监视器的线程转储而没有锁定线程
2023-04-15 11:42:00

JVM Thread dumps containing monitors without locking threads是什么原因导致JVM线程转储显示了等待锁定在监视器上的线程,但是监视器没有相应的锁定线程? Windows 2003上的Java 1.5_14 这些等待线程是否一直在等待,或者它们最终会继续进行? 如果是后者,则可能是垃圾收集器锁定了该锁。 您可以在Java命令行上添加参数 有关垃圾收集的一些信息。 通过任何更改,您的代码是否使用任何JNI? (即,您是否正在运行从Java启动的任何本机代码?)。 我们已经看到了类似的行为,但是JDK 1.6.0_05。 App似乎出现死锁,但是Jstack显示了线程正在等待没有其他线程持有的锁。我们有一些JNI代码,因此很可能我们正在破坏某些内容。 我们尚未找到解决方案,该问题只能在1台计算机上重现。 您是否尝试过升级到Java 1.6?如果您仅使用1.5,则可能是一个错误。 我今天有一个类似的问题,它还涉及静态资源的访问。 简短的版本是,一个类在静态块中以及在AWT-EventQueue线程之外(由AWT TreeLock阻止)在GUI内进行了GUI更改,然后EventQueue引用了被阻止的类,这迫使它进行了更改。在类加载器的监视器上等待该类。 此处的主要观察结果是类加载器的锁未在线程转储中显示为已锁定。 完整的答案可以在该线程上找到。 是的,通常,每个锁定的监视器都必须具有所有者线程。也许您的堆栈转储未完成(太长),或者转储不一致。我可以想象它并没有停止世界,所以转储了一个锁定的监视器,但是拥有锁的线程在被转储之前就释放了它(这只是一个猜测)。 您能在哪里将转储文件上传为文本文件,以便于搜索,并告诉我们您要使用的监视器。 那只是一个疯狂的猜测,但这是否可能是线程通过尝试两次获取锁来锁定自己?如果您可以发布一些代码,可能会有所帮助。 |
最新内容
相关内容
linux线程查询命令?
linux线程查询命令?,系统,第一,线程,命令,软件,名称,信息,进程,选项,方法,Linux系统如何查看进程的线程数1、第一种方法:top命令法首先执行toplinux多线程下载命令?
linux多线程下载命令?,软件,工具,平台,中心,系统,代理,网络,网站,手机,官方网站,从linux服务器中下载或上传文件wget是linux下一个从网络上自linux断开线程命令?
linux断开线程命令?,系统,状态,工作,代码,线程,入口,网络,管理,名称,命令,linux下C中怎么让才能安全关闭线程方法:在线程入口函数中,调用returnlinux系统监视器命令?
linux系统监视器命令?,系统,情况,工具,信息,实时,电脑,平均,报告,管理,分析,如何查看计算机的显卡型号可以看到你的电脑的显卡型号。方法三:使linux锁定帐户的命令?
linux锁定帐户的命令?,系统,密码,情况,管理,工作,用户,帐户,账户,命令,权限,Linux下如何禁止用户登录可以使用usermod命令来禁用用户账户。该linux锁定终端命令?
linux锁定终端命令?,工作,密码,地址,系统,信息,命令,图片,状态,目录,用户,linux基本命令1、linux系统常用操作命令如下:ls:全拼list,功能是列出目linux停止线程的命令?
linux停止线程的命令?,系统,软件,代码,产品,进程,第一,管理,生产,通信,工具,linux下nginx停止命令1、首先,连接相应linux主机,进入到linux命令行linux超线程查看命令?
linux超线程查看命令?,系统,第一,信息,软件,命令,数据,工具,实时,界面,个数,Linux查看CPU详细信息这里我先介绍一个文件。它就是/proc目录文件linux查看多线程命令?
linux查看多线程命令?,系统,第一,线程,地址,数据,进程,命令,名称,软件,情况,如何查看linux服务器的cpu数量,内核数,和cpu线程数如何查看linuxlinux命令行锁定界面?
linux命令行锁定界面?,系统,管理,地址,密码,工作,一致,数字,首页,快捷键,界面,linux系统基本操作首先,您需要了解Linux系统的文件系统和目录结linux执行线程命令?
linux执行线程命令?,系统,工作,线程,软件,服务,管理,信息,环境,名称,命令,linux下线程属性常用操作有哪些1、linux系统常用操作命令linux系统linux线程操作命令?
linux线程操作命令?,系统,工作,时间,代码,线程,信息,第一,命令,函数,操作,linux下线程属性常用操作有哪些linux系统常用操作命令linux系统常用