您当前的位置: 首页 >  Java

柳鲲鹏

暂无认证

  • 0浏览

    0关注

    4642博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

MAC机上JAVA对话框死锁的案例之一

柳鲲鹏 发布时间:2022-01-10 15:06:22 ,浏览量:0

  应用启动,弹出对话框,死锁。这个问题在某个机器上很容易出现,在其他机器上则很难。原因是什么呢?

  • 写了个简单的程序,弹出对话框并不死
  • 启动了一个线程,在线程中弹出对话框

这个问题好解决。

  • 分析

同事仔细研究了以下死锁:

"AWT-EventQueue-0" #12 prio=6 os_prio=31 tid=0x00007f8d85aed800 nid=0xbe37 runnable [0x000070000b881000]
   java.lang.Thread.State: RUNNABLE
	at sun.lwawt.macosx.CWrapper$NSWindow.isKeyWindow(Native Method)

"AppKit Thread" #9 daemon prio=5 os_prio=31 tid=0x00007f8d85380800 nid=0x103 waiting for monitor entry [0x00007ffedfdfc000]
   java.lang.Thread.State: BLOCKED (on object monitor)
	at java.awt.Component.getLocationOnScreen(Component.java:2036)

  二者一个等待一个死锁。同事猜测是重载对话框后,重载getExtendedState()调用导致函数的。去掉正常。

  这也是常见的事情。

关注
打赏
1665724893
查看更多评论
立即登录/注册

微信扫码登录

0.0796s