gpt4 book ai didi

java - 我从哪里开始调查不会结束的 Java 进程?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:25:59 25 4
gpt4 key购买 nike

我有一个不会结束的 Java 应用程序。 main 方法完成,但线程保持 Activity 状态并且应用程序没有结束。问题是,似乎没有任何监视器锁定/等待,所以我不明白为什么它没有结束。根据 Eclipse,我剩下两个非守护线程。一个标记为 [DestroyJavaVM](看起来很有希望!),另一个似乎在 Unsafe.park(boolean, long) 中被阻止。我应该如何/从哪里开始对此进行调查?

第二个线程的简化堆栈跟踪是:

   Unsafe.park(boolean, long)
at LockSupport.park(Object)
at AbstractQueuedSynchronizer$ConditionObject.await()
at LinkedBlockingQueue<E>.take()
at ThreadPoolExecutor.getTask()
at ThreadPoolExecutor$Worker.run()
at Thread.run()

最佳答案

您需要执行以下两项操作之一来终止您的 ExecutorService主题:

  1. 指定 <a href="http://download.oracle.com/docs/cd/E17409_01/javase/6/docs/api/java/util/concurrent/ThreadFactory.html" rel="noreferrer noopener nofollow">ThreadFactory</a>创建守护线程(来自 Guava<a href="http://guava-libraries.googlecode.com/svn/trunk/javadoc/com/google/common/util/concurrent/ThreadFactoryBuilder.html" rel="noreferrer noopener nofollow">ThreadFactoryBuilder</a> 类将使这更容易。)
  2. 调用<a href="http://download.oracle.com/docs/cd/E17409_01/javase/6/docs/api/java/util/concurrent/ExecutorService.html#shutdown%28%29" rel="noreferrer noopener nofollow">shutdown()</a>在你的 <a href="http://download.oracle.com/docs/cd/E17409_01/javase/6/docs/api/java/util/concurrent/ExecutorService.html" rel="noreferrer noopener nofollow">ExecutorService</a>作为应用程序关闭的一部分(例如,在您的 main 方法结束时。)

关于java - 我从哪里开始调查不会结束的 Java 进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3236427/

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