gpt4 book ai didi

java.lang.Thread.State : BLOCKED

转载 作者:行者123 更新时间:2023-12-02 05:53:56 24 4
gpt4 key购买 nike

我的应用程序有时会卡住,控制台中没有任何错误。我做了一个 jstack,但我不明白发生了什么以及如何解决这种糟糕的情况:(

你能帮我么?这是 jstack 输出:

    2011-03-09 00:20:26
Full thread dump Java HotSpot(TM) Client VM (19.1-b02 mixed mode, sharing):

"Java Sound Event Dispatcher" daemon prio=6 tid=0x083ce800 nid=0x6cc in Object.wait() [0x0cd1f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:485)
at com.sun.media.sound.EventDispatcher.dispatchEvents(Unknown Source)
- locked <0x29d4b458> (a com.sun.media.sound.EventDispatcher)
at com.sun.media.sound.EventDispatcher.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

Locked ownable synchronizers:
- None

"Smack Listener Processor (1)" daemon prio=6 tid=0x083cd000 nid=0x13b8 in Object.wait() [0x0b9ef000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:485)
at javax.swing.text.AbstractDocument.readLock(Unknown Source)
- locked <0x29d7ca80> (a javax.swing.text.PlainDocument)
at javax.swing.plaf.basic.BasicTextUI.getMinimumSize(Unknown Source)
at javax.swing.JComponent.getMinimumSize(Unknown Source)
at java.awt.GridBagLayout.GetLayoutInfo(Unknown Source)
- locked <0x29bb0ed0> (a java.awt.Component$AWTTreeLock)
at java.awt.GridBagLayout.getLayoutInfo(Unknown Source)
at java.awt.GridBagLayout.minimumLayoutSize(Unknown Source)
at java.awt.Container.minimumSize(Unknown Source)
- locked <0x29bb0ed0> (a java.awt.Component$AWTTreeLock)
at java.awt.Container.getMinimumSize(Unknown Source)
at javax.swing.JComponent.getMinimumSize(Unknown Source)
at javax.swing.BoxLayout.checkRequests(Unknown Source)
at javax.swing.BoxLayout.layoutContainer(Unknown Source)
- locked <0x29d84878> (a javax.swing.BoxLayout)
at javax.swing.JToolBar$DefaultToolBarLayout.layoutContainer(Unknown Source)
at java.awt.Container.layout(Unknown Source)
at java.awt.Container.doLayout(Unknown Source)
at java.awt.Container.validateTree(Unknown Source)
at java.awt.Container.validateTree(Unknown Source)
at java.awt.Container.validateTree(Unknown Source)
at java.awt.Container.validateTree(Unknown Source)
at java.awt.Container.validateTree(Unknown Source)
at java.awt.Container.validateTree(Unknown Source)
at java.awt.Container.validateTree(Unknown Source)
at java.awt.Container.validateTree(Unknown Source)
at java.awt.Container.validate(Unknown Source)
- locked <0x29bb0ed0> (a java.awt.Component$AWTTreeLock)
at java.awt.Window.show(Unknown Source)
at java.awt.Component.show(Unknown Source)
at java.awt.Component.setVisible(Unknown Source)
at java.awt.Window.setVisible(Unknown Source)
at org.sampei.asdbook.UserWindow.setUserPanel(UserWindow.java:144)
at org.sampei.asdbook.AsdBook.propertyChange(AsdBook.java:382)
at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
at org.sampei.asdbook.Xmpp$1.processPacket(Xmpp.java:80)
at org.jivesoftware.smack.PacketReader$ListenerWrapper.notifyListener(PacketReader.java:819)
at org.jivesoftware.smack.PacketReader$ListenerNotification.run(PacketReader.java:799)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

Locked ownable synchronizers:
- <0x29cb54b0> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)

"Smack Keep Alive (1)" daemon prio=6 tid=0x083ccc00 nid=0x1b58 waiting on condition [0x0b89f000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.jivesoftware.smack.PacketWriter$KeepAliveTask.run(PacketWriter.java:451)
at java.lang.Thread.run(Unknown Source)

Locked ownable synchronizers:
- None

"Smack Packet Reader (1)" daemon prio=6 tid=0x083ca000 nid=0x1b64 runnable [0x0ac6f000]
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(Unknown Source)
at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
at sun.nio.cs.StreamDecoder.read(Unknown Source)
- locked <0x29c7ebf0> (a java.io.InputStreamReader)
at java.io.InputStreamReader.read(Unknown Source)
at java.io.BufferedReader.fill(Unknown Source)
at java.io.BufferedReader.read1(Unknown Source)
at java.io.BufferedReader.read(Unknown Source)
- locked <0x29c7ebf0> (a java.io.InputStreamReader)
at org.xmlpull.mxp1.MXParser.fillBuf(MXParser.java:2992)
at org.xmlpull.mxp1.MXParser.more(MXParser.java:3046)
at org.xmlpull.mxp1.MXParser.nextImpl(MXParser.java:1144)
at org.xmlpull.mxp1.MXParser.next(MXParser.java:1093)
at org.jivesoftware.smack.PacketReader.parsePackets(PacketReader.java:368)
at org.jivesoftware.smack.PacketReader.access$000(PacketReader.java:44)
at org.jivesoftware.smack.PacketReader$1.run(PacketReader.java:76)

Locked ownable synchronizers:
- None

"Smack Packet Writer (1)" daemon prio=6 tid=0x083cc400 nid=0xb40 in Object.wait() [0x0a9ef000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:485)
at org.jivesoftware.smack.PacketWriter.nextPacket(PacketWriter.java:239)
- locked <0x29c82dc8> (a java.util.concurrent.ArrayBlockingQueue)
at org.jivesoftware.smack.PacketWriter.writePackets(PacketWriter.java:255)
at org.jivesoftware.smack.PacketWriter.access$000(PacketWriter.java:40)
at org.jivesoftware.smack.PacketWriter$1.run(PacketWriter.java:87)

Locked ownable synchronizers:
- None

"SwingWorker-pool-1-thread-2" daemon prio=6 tid=0x083ca800 nid=0x438 waiting on condition [0x09ecf000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x29c83060> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
at java.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

Locked ownable synchronizers:
- None

"SwingWorker-pool-1-thread-1" daemon prio=6 tid=0x083c7800 nid=0x1ac0 waiting on condition [0x0802f000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x29c83060> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
at java.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

Locked ownable synchronizers:
- None

"TimerQueue" daemon prio=6 tid=0x083c9000 nid=0x1010 in Object.wait() [0x0a0ff000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at javax.swing.TimerQueue.run(Unknown Source)
- locked <0x29c831b8> (a javax.swing.TimerQueue)
at java.lang.Thread.run(Unknown Source)

Locked ownable synchronizers:
- None

"D3D Screen Updater" daemon prio=8 tid=0x083c8400 nid=0x5a4 in Object.wait() [0x003cf000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at sun.java2d.d3d.D3DScreenUpdateManager.run(Unknown Source)
- locked <0x29ba4860> (a java.lang.Object)
at java.lang.Thread.run(Unknown Source)

Locked ownable synchronizers:
- None

"Mozilla" daemon prio=6 tid=0x053c5400 nid=0x9f0 runnable [0x085af000]
java.lang.Thread.State: RUNNABLE
at org.mozilla.xpcom.internal.XPCOMJavaProxy.callXPCOMMethod(Native Method)
at org.mozilla.xpcom.internal.XPCOMJavaProxy.invoke(XPCOMJavaProxy.java:143)
at $Proxy5.run(Unknown Source)
at org.mozilla.browser.MozillaExecutor$1.run(MozillaExecutor.java:206)

Locked ownable synchronizers:
- None

"DestroyJavaVM" prio=6 tid=0x02418800 nid=0x1770 waiting on condition [0x00000000]
java.lang.Thread.State: RUNNABLE

Locked ownable synchronizers:
- None

"AWT-EventQueue-0" prio=6 tid=0x052a7800 nid=0x15d4 waiting for monitor entry [0x057be000]
java.lang.Thread.State: BLOCKED (on object monitor)
at java.awt.Component.invalidate(Unknown Source)
- waiting to lock <0x29bb0ed0> (a java.awt.Component$AWTTreeLock)
at java.awt.Container.invalidate(Unknown Source)
at javax.swing.JComponent.revalidate(Unknown Source)
at javax.swing.plaf.basic.BasicTextUI$RootView.preferenceChanged(Unknown Source)
at javax.swing.text.View.preferenceChanged(Unknown Source)
at javax.swing.text.PlainView.updateDamage(Unknown Source)
at javax.swing.text.PlainView.removeUpdate(Unknown Source)
at javax.swing.text.FieldView.removeUpdate(Unknown Source)
at javax.swing.plaf.basic.BasicTextUI$RootView.removeUpdate(Unknown Source)
at javax.swing.plaf.basic.BasicTextUI$UpdateHandler.removeUpdate(Unknown Source)
at javax.swing.text.AbstractDocument.fireRemoveUpdate(Unknown Source)
at javax.swing.text.AbstractDocument.handleRemove(Unknown Source)
at javax.swing.text.AbstractDocument.remove(Unknown Source)
at javax.swing.text.AbstractDocument.replace(Unknown Source)
at javax.swing.text.JTextComponent.setText(Unknown Source)
at org.mozilla.browser.MozillaPanel.onSetUrlbarText(MozillaPanel.java:457)
at org.mozilla.browser.impl.ProgressAdapter$1.run(ProgressAdapter.java:31)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

Locked ownable synchronizers:
- None

"AWT-Windows" daemon prio=6 tid=0x052a6800 nid=0x18b8 runnable [0x0572f000]
java.lang.Thread.State: RUNNABLE
at sun.awt.windows.WToolkit.eventLoop(Native Method)
at sun.awt.windows.WToolkit.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

Locked ownable synchronizers:
- None

"AWT-Shutdown" prio=6 tid=0x052a6400 nid=0x938 in Object.wait() [0x0569f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:485)
at sun.awt.AWTAutoShutdown.run(Unknown Source)
- locked <0x29ba5058> (a java.lang.Object)
at java.lang.Thread.run(Unknown Source)

Locked ownable synchronizers:
- None

"Java2D Disposer" daemon prio=10 tid=0x052a3c00 nid=0x1968 in Object.wait() [0x0560f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
- locked <0x29ba50f0> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at sun.java2d.Disposer.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

Locked ownable synchronizers:
- None

"Low Memory Detector" daemon prio=6 tid=0x024c0400 nid=0x192c runnable [0x00000000]
java.lang.Thread.State: RUNNABLE

Locked ownable synchronizers:
- None

"CompilerThread0" daemon prio=10 tid=0x024bb400 nid=0x1a0c waiting on condition [0x00000000]
java.lang.Thread.State: RUNNABLE

Locked ownable synchronizers:
- None

"Attach Listener" daemon prio=10 tid=0x024b8400 nid=0x1bd0 waiting on condition [0x00000000]
java.lang.Thread.State: RUNNABLE

Locked ownable synchronizers:
- None

"Signal Dispatcher" daemon prio=10 tid=0x024b5400 nid=0x1e0 runnable [0x00000000]
java.lang.Thread.State: RUNNABLE

Locked ownable synchronizers:
- None

"Finalizer" daemon prio=8 tid=0x024af000 nid=0x77c in Object.wait() [0x04dff000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
- locked <0x29ba5348> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)

Locked ownable synchronizers:
- None

"Reference Handler" daemon prio=10 tid=0x024ad000 nid=0x948 in Object.wait() [0x04d6f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:485)
at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)
- locked <0x29ba4900> (a java.lang.ref.Reference$Lock)

Locked ownable synchronizers:
- None

"VM Thread" prio=10 tid=0x02471400 nid=0x10c4 runnable

"VM Periodic Task Thread" prio=10 tid=0x024d3c00 nid=0x193c waiting on condition

JNI global references: 3767

最佳答案

看起来您正在 Smack 监听器线程中执行 Swing/AWT 操作。 Swing 不是线程安全的,因此您需要在 AWT-EventQueue-0 线程中完成所有 Swing 操作。

这一行可能是你的罪魁祸首:

at org.sampei.asdbook.UserWindow.setUserPanel(UserWindow.java:144)

您需要调用 SwingUtilities.invokeLater()SwingUtilities.invokeAndWait() ——最好是前者。

关于java.lang.Thread.State : BLOCKED,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5240361/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com