職場でのトレーニングでは、次の基準を満たすJava(経験が0)プログラムを作成しています。
分散コンピューティングアプリケーションを複製するプログラムを作成する
M個の乱数のリストを含む中央の「スケジューラー」オブジェクトを作成します
スケジューラーから番号を取得するN個のプロセッサー・スレッドを作成し、それを何度もループしてから、別の番号を要求します
スケジューラから利用できる番号がない場合は、別の番号を要求するのを待ちます。
数字が残っていない場合は、すべてのスレッドが終了するはずです。
これまで、乱数の配列を使用してオブジェクトを作成しましたが、マルチスレッドを続行する方法が本当にわかりません。誰かが私にそれを案内してもらえますか?これは、擬似コードを示すコメントとともに、私がこれまでに持っているものです。
public class ThreadDemo extends Thread
{
//create new array of arbitrary size 5
static int SIZE = 5;
static int[] myIntArray = new int[SIZE];
public ThreadDemo()
{
start();
}
class RunnableThread implements Runnable {
Thread runner;
public RunnableThread() {
}
public RunnableThread(String threadName) {
runner = new Thread(this, threadName); // (1) Create a new thread.
System.out.println(runner.getName());
runner.start(); // (2) Start the thread.
}
public void run() {
//Display info about this particular thread
System.out.println(Thread.currentThread());
}
}
public static void main(String[] args)
{
for(int i=0; i<SIZE; i++)
{
myIntArray[i] = (int)(Math.random() * 10);
}
ThreadDemo scheduler = new ThreadDemo();
//create M processor threads that retrieve number from scheduler
//for(int i=0; i<SIZE; i++)
//
//if no threads available
//make the scheduler thread wait() ??
//if empty
//stop() the scheduler thread ??
}
}
誰かが私を正しい方向に導くことができますか?
ありがとうございました!