【发布时间】:2011-12-08 22:17:28
【问题描述】:
我做了一个程序来计算单个文件中的单词, 但是我怎样才能修改我的程序,所以它给出了所有文件中的总字数(作为一个值)。
我的代码如下所示:
public class WordCount implements Runnable
{
public WordCount(String filename)
{
this.filename = filename;
}
public void run()
{
int count = 0;
try
{
Scanner in = new Scanner(new File(filename));
while (in.hasNext())
{
in.next();
count++;
}
System.out.println(filename + ": " + count);
}
catch (FileNotFoundException e)
{
System.out.println(filename + " blev ikke fundet.");
}
}
private String filename;
}
使用主类:
public class Main
{
public static void main(String args[])
{
for (String filename : args)
{
Runnable tester = new WordCount(filename);
Thread t = new Thread(tester);
t.start();
}
}
}
以及如何避免竞争条件? 感谢您的帮助。
【问题讨论】:
-
什么比赛条件?我也看不出你是如何添加不同文件的字数的。
-
您想要一个可运行文件/文件,还是只希望特定的可运行文件遍历所有文件。多线程注释使这个问题变得令人困惑
标签: java multithreading words