在工作培训中,我正在编写一个应满足以下条件的 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 ??
}
}
谁能引导我朝着正确的方向前进?
谢谢!