如何针对单/多线程调整此值?

时间:2012-04-30 21:54:03

标签: java multithreading

我有一个基本上有两个方法的类,第一个采用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方法有一个循环(对于列表中的项目数),然后在循环中为每次迭代调用第一个方法。有没有办法获取用户请求的线程数,并在第一个方法中一次启动/启动它们而不是一次启动它们并调用方法?

1 个答案:

答案 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 ( );