基本的に2つのメソッドを持つクラスがあります。最初のメソッドは文字列(ファイルの名前)とスレッドを取ります:
public static void readFile(String s, Thread t){
Runnable read = new Runnable() {
public void run() {
//SOME CODE
}
t = new Thread(read);
t.start();
}
2 番目のメソッドは、ユーザーに入力を求め、その入力を使用していくつかの設定を行うメイン メソッドです (スレッドの数が 1 つだけの場合や、リスト内のオブジェクトの数と等しい場合など)。
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 つのスレッドを要求した場合、そのために上記をどのように変更できますか? 現在、メイン メソッドにはループ (リスト内の項目数) があり、ループ内の反復ごとに最初のメソッドが呼び出されます。ユーザーが要求したスレッドの数を取得し、一度に 1 つずつメソッドを呼び出すのではなく、最初のメソッドでそれらを一度に開始/開始する方法はありますか?