小编amo*_*kul的帖子

java使用100%cpu

我在CentOS 6.0上运行了一个java应用程序.它总是通过cron在后台运行.有时这个应用程序在使用100%cpu时进入等待状态.

我的java版本是:

java version "1.6.0_17"
OpenJDK Runtime Environment (IcedTea6 1.7.4) (rhel-1.21.b17.el6-x86_64)
OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode)
Run Code Online (Sandbox Code Playgroud)

其他症状是:

一个.该过程的一个线程似乎在循环中等待某事.使用strace进行跟踪时,它会连续显示以下o/p:

futex(0x7fb8000ac728, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7fb8000ac754, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 1, {1340347489,> 822867000}, ffffffff) = -1 ETIMEDOUT (Connection timed out)
Run Code Online (Sandbox Code Playgroud)

湾 似乎该过程已完成工作,查看它正在使用的文件.只剩下几个文件.'ls/proc/pid/fd /的输出显示:

lr-x------ 1 root root 64 Jun 22 13:13 0 -> pipe:[77107601]
l-wx------ 1 root root 64 Jun 22 13:13 1 -> pipe:[77120162]
l-wx------ 1 root root 64 Jun 22 13:13 2 -> /var/log/mithi/mcs/agent_account_mailstore_exceed_limit.sh.log
lr-x------ 1 root root 64 …
Run Code Online (Sandbox Code Playgroud)

java openjdk

5
推荐指数
1
解决办法
4316
查看次数

我们应该在java中断言每个对象的创建吗?

听起来像一个明显答案的愚蠢问题:)

我仍然冒险要求加倍确定.

我们确实使用如下所示的断言

ArrayList alProperties = new ArrayList();

assert alProperties != null : "alProperties is null";
Run Code Online (Sandbox Code Playgroud)

问题是在断言上制作一个小而简单的文档是很困难的.有很多关于断言的书籍,但理想情况下,我喜欢给一个新的程序员非常简单的使用类似断言的指南.顺便说一句,像pmd这样的工具检查断言是否正确使用?

提前致谢.

java assert new-operator

3
推荐指数
2
解决办法
950
查看次数

标签 统计

java ×2

assert ×1

new-operator ×1

openjdk ×1