我一直在JDK6上开发我的Java应用程序,并在JRE 6和7下运行。一切正常。
我最近不得不为自己买一台新笔记本,所以我用JDK7安装了最新的NetBeans,并将项目配置设置为“源/二进制格式:JDK 6”。该应用程序在JRE7下编译并运行良好。
在Linux的默认java-1.6.0-openjdk下,它的行为有所不同。看起来99%的线程永远不会被终止。我最终得到一个具有1000多个线程,100多个数据库连接等的应用程序。即使是简单的操作(基于计时器)也会使线程保持打开状态。
在profiler(visualVM)中我可以请求垃圾收集,但它不会终止线程,只是清除一些内存。
有人遇到过这种行为吗?