加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

java_调用命令关闭进程,java关闭进程

(2014-06-06 22:45:17)
标签:

育儿

分类: JAVA/J2se/J2ee
做hadoop的实验的时候,老师要求使用统计单词的这个功能,统计单词并不难,主要是要统计的单词从哪里来,因为是做大数据嘛,统计的单词当然不能是几M或者是几十M,那样怎么也体现不出来hadoop的神效啊,哈哈,老师要求的是必须有最好800M的单词量,说实话这么大的文本量根本找不出来,只有自己随机生成了。

生成的单词的坏处就是完全没有意义,第二就是可能单词的重复率较低,这样就会使后面的输出结果比较大,这也是可以理解的,因为没有更好的解决方案。

现在遇到的一个问题就是,因为生成的时间比较长,我马上要回去休息了,但是放在这里一夜让程序运行也是不靠谱的事情,可能得不到我想要的结果,如果得到的数据量太大,我都懒得打开,估计会把我的电脑卡死,只有考虑使用多线程技术让当达到要求后结束进程,

为什么要多线程,1我还没怎么使用过多线程技术,顺便练练手,2如果不是多线程技术每次生成一个单词都计算大小,这真是太浪费了,

一次我设置的是每隔5秒钟来进行检查一下,当检测到满足要求的时候就可以结束进程了,如图:

程序如下:

import java.io.File;
import java.io.IOException;
import java.util.Date;
import java.util.Scanner;

public class CheckSize implements Runnable
{

int pauseTime;
String filename = "D:\\345.txt";
int size;

public CheckSize(int pauseTime, String filename, int size)
{
this.pauseTime = pauseTime;
this.filename = filename;
this.size = size;
}

public void kill() throws IOException
{
java.lang.Process process = Runtime.getRuntime().exec("tasklist");

Scanner in = new Scanner(process.getInputStream());
while (in.hasNextLine())
{
String p = in.nextLine();
System.out.println(p);
if (p.contains("java.exe"))
{
StringBuffer buf = new StringBuffer();
for (int i = 0; i < p.length(); i++)
{
char ch = p.charAt(i);
if (ch != ' ')
{
buf.append(ch);
}
}
// System.out.println(buf.toString().split("Console")[0].substring("javaw.exe".length()));
Runtime.getRuntime().exec("tskill "+buf.toString().split("Console")[0].substring("java.exe".length()));
}
}
}

@Override
public void run()
{
// TODO Auto-generated method stub
File file = new File(filename);
while (true)
{
try
{
System.out.println(filename + ":" + new Date(System.currentTimeMillis()) + " size= " + file.length() / 1024.0 / 1024 + "  M");
if (file.length() / 1024 / 1024.0 > 800)
{
//kill java
kill();
}
Thread.sleep(pauseTime);

} catch (Exception e)
{
System.out.println(e);
}
}

}

public static void main(String[] args)
{

Thread thread = new Thread(new CheckSize(5000, "D:\\345.txt", 1));
thread.run();

}

}


元谋人
2014年6月6日23:10:46

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有