Java中如何删除一个集合中的多个元素

发表于:2016-8-04 10:38

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:良少    来源:51Testing软件测试网采编

1 import java.io.BufferedReader;
2 import java.io.InputStreamReader;
3
4 public class CPUTest {
5     public static void createBusyThread() {
6         Thread thread = new Thread(new Runnable() {
7             @Override
8             public void run() {
9                 while (true)   // 第41行
10                     ;
11             }
12         }, "testBusyThread");
13         thread.start();
14         }
15
16         /**
17          * 线程锁等待演示
18          */
19         public static void createLockThread(final Object lock) {
20         Thread thread = new Thread(new Runnable() {
21             @Override
22             public void run() {
23                 synchronized (lock) {
24                     try {
25                         lock.wait();
26                     } catch (InterruptedException e) {
27                         e.printStackTrace();
28                     }
29                 }
30             }
31         }, "testLockThread");
32         thread.start();
33         }
34
35         public static void main(String[] args) throws Exception {
36             BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
37             br.readLine();
38             createBusyThread();
39             br.readLine();
40             Object obj = new Object();
41             createLockThread(obj);
42         }
43 }
  这是源代码。
  用命令top结果如下:
  从上图可以看出进程6777CPU占用率特别高,下面用命令top -p 6777 -H 查看具体是这个进程的哪个线程占用CPU高。
  上图可知是线程7003.线程好转换成16进制,注意是小写字母,0x1b5b。使用jstack 6777|grep -A 10 0x1b5b来查询出具体的线程状态
  找到上边代码的第十行,发现是while循环一直运行。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号