我有一个基本上有两个方法的类,第一个采用String(文件名)和一个线程:
public static void readFile(String s, Thread t){
Runnable read = new Runnable() {
public void run() {
//SOME CODE
}
t = new Thread(read);
t.start();
}
第二种方法是一个主要方法,要求用户输入,然后使用该输入设置一些东西(如果线程数只是一个或者它是否等于列表中的对象数) 。
public static void main(String[] args){
//SOME CODE
for(Object x: ListOfObjects){
//t1 is the same thread each time if one thread requested, otherwise t1 is a different thread each time
readFromFile(textFileString, t1);
//SOME CODE
}
如果用户要求5个线程(列表中的5个项目),那么如何修改上述内容呢?目前,我的main方法有一个循环(对于列表中的项目数),然后在循环中为每次迭代调用第一个方法。有没有办法获取用户请求的线程数,并在第一个方法中一次启动/启动它们而不是一次启动它们并调用方法?
答案 0 :(得分:0)
实现Runnable接口。我试过了 这似乎有效:
class StringThread implements Runnable
{
private String str;
private int num;
StringThread(String s, int n)
{
str = new String (s);
num =n;
}
public void run ( )
{
for (int i=1; i<=num; i++)
System.out.print ("THREAD NAMED: " + str+" I IS: " +
i + "\n");
}
}
//IN the main program:
StringThread t1 = new StringThread ("THR-1",100);
new Thread(t1). start ( );
StringThread t2 = new StringThread ("THR-2",200);
new Thread(t2). start ( );