草庐IT

Java 线程终止引用

为什么不能通过将线程的引用设置为null并让垃圾收集器删除它来终止线程?它和其他对象一样,不是吗?示例:Threadt=newThread(newRunnable(){publicvoidrun(){//...}}).start;t=null; 最佳答案 It'sanobjectlikeanyother,isn'tit?不,不是。它代表一个非内存资源。您是否希望一个文件被删除,因为代表它的对象被垃圾回收了?事实上,当谈到垃圾回收时,Thread对象非常不“像任何其他”对象,因为线程本身就是可达性树,因此表示正在运行的线程的Threa

java - JVM 远程调试 session 因未捕获的异常而终止

我正在尝试远程调试Scala项目。执行程序(从SBT构建和执行)和我的调试器(Intellij)都是本地的,但由于我不想使用Intellij构建,使用远程调试session似乎是方便调试的最简单选择。程序以下列选项启动:-Xdebug-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005它在启动时成功挂起,我可以成功附加我的调试器。我可以设置断点并逐步执行代码,但问题是未捕获的异常终止了调试session并断开了调试器,从而破坏了调试的目的。这是默认行为是愚蠢的,所以我一定是做错了什么。Intellij的控制台显示:C

java - 我是否必须在 try-with-resources-block 中关闭已终止的流式查询结果?

这个问题在这里已经有了答案:Doterminaloperationsclosethestream?(2个答案)关闭6年前。在SpringDataJPA文档中它说关于流:AStreampotentiallywrapsunderlyingdatastorespecificresourcesandmustthereforebeclosedafterusage.YoucaneithermanuallyclosetheStreamusingtheclose()methodorbyusingaJava7try-with-resourcesblock.参见:http://docs.spring.io

java - 在 Java 中使用 Thread#stop() 来终止一个正在运行的线程是否可以接受?

遗憾的是,在Java中对字符串使用正则表达式时无法指定超时。因此,如果您没有严格控制将哪些模式应用于哪些输入,您最终可能会拥有消耗大量CPU的线程,同时无休止地尝试将(设计不佳的)模式与(恶意的?)输入匹配。我知道Thread#stop()被弃用的原因(参见http://download.oracle.com/javase/1.5.0/docs/guide/misc/threadPrimitiveDeprecation.html)。它们以可能在ThreadDeath异常情况下损坏的对象为中心,然后这些对象会污染您正在运行的JVM环境并可能导致细微的错误。对于比我对JVM的工作原理有更深

java - 终止运行 native 代码的线程

在我的应用程序中,我有一些native代码的包装器,它通过JNI桥调用。此native代码需要在单独的线程中执行(并行处理)。然而,问题是代码有时会“挂起”,因此需要“强制”终止线程。不幸的是,我还没有找到任何“微妙”的方法来这样做:一般建议是告诉线程中的代码优雅地退出,但我不能用这个native代码(上面的第3方代码)来做到这一点。我使用JavaConcurrentAPI进行任务提交:FutureprocessFuture=taskExecutor.submit(callable);try{result=processFuture.get(this.executionTimeout,

java - 获取有关 Java 进程终止的通知

有一个控制台Java应用程序应该一直运行,直到被Ctrl+C停止或关闭控制台窗口。如何对该应用程序进行编程以在退出前执行清理代码? 最佳答案 你可以使用ShutdownHook.基本上您需要创建一个线程来执行您的关闭操作,然后additasashutdownhook.例如:classShutdownHookextendsThread{publicvoidrun(){//performshutdownactions}}//Then,somewhereinyourcodeRuntime.getRuntime().addShutdownH

java - 字符串如何在java中终止?

你好我正在尝试编写一个递归函数来计算Java中字符串的长度我知道已经存在str.length()函数,但是问题陈述想实现一个递归函数在C语言中终止字符是'\0',我只想知道如何知道字符串是否在Java中结束当我在测试字符串中放入“\n”时,我的程序顺利结束。请告诉我。谢谢!/**Tochangethistemplate,chooseTools|Templates*andopenthetemplateintheeditor.*/packagecareercup.google;/****@authorlearner*/publicclassStrlen{privatestaticfinal

java - Java 中的子线程是否会阻止父线程终止?

当我在另一个线程中创建并启动一个线程时,它会是一个子线程吗?它会阻止子线程运行时父线程的终止吗?例如:newThread(newRunnable(){@Overridepublicvoidrun(){//DoSthnewThread(newRunnable(){@Overridepublicvoidrun(){//DoSthnewThread(newRunnable(){@Overridepublicvoidrun(){//DoSth}}).start();//DoSth}}).start();//DoSth}//DoSth}).start(); 最佳答案

java - Spring Boot 应用程序在启动时终止

我正在尝试一个简单的springboot应用程序,它总是自动关闭::SpringBoot::(v1.4.1.RELEASE)2016-10-2313:05:21.681INFO16532---[main]com.example.RestBootApplication:Noactiveprofileset,fallingbacktodefaultprofiles:default2016-10-2313:05:21.766INFO16532---[main]s.c.a.AnnotationConfigApplicationContext:Refreshingorg.springframew

java - 什么正在终止我的 Java ExecutorService

我最初是在ThreadPoolExecutor的一个更复杂的子类中看到这个问题,但我已经简化了,所以现在只包含一些额外的调试,但仍然遇到同样的问题。importcom.jthink.songkong.cmdline.SongKong;importcom.jthink.songkong.ui.MainWindow;importcom.jthink.songkong.util.SongKongThreadFactory;importjava.util.concurrent.*;importjava.util.logging.Level;publicclassTimeoutThreadPoo