【发布时间】:2014-10-23 21:16:28
【问题描述】:
对 Java 来说是全新的,但是我必须以某种方式完成这项工作。我希望你们能让我走上正确的道路。
程序必须创建 N 个线程和一个包含 N 个元素的数组。第一个线程应该将一个随机数写入数组(这里 - resultArray),调用(或创建)下一个线程(它将做同样的事情)并休眠直到最后一个线程通知所有其他线程休眠线程。
那么,到目前为止,我这样做是否正确?如何让run() 访问演示的 resultArray 并写入线程的随机数?
另外,run() 怎样才能到达(threadList 的)其他线程来通知它们?
谢谢。
public class gijos extends Thread {
private int length;
private int position;
public gijos(int arrPos) {
position = arrPos;
}
public int getPosition(){
return position;
}
public void run() {
Random rand = new Random();
int n = rand.nextInt(51) + 1;
}
public class demo {
public static void main (String[] args) {
System.out.println("Array length / thread count:");
Scanner s = new Scanner(System.in);
int N = s.nextInt();
int[] resultArray = new int[N];
gijos[] threadList = new gijos[N];
for(int i = 0; i < N; i++){
threadList[i] = new gijos(i);
}
}
}
【问题讨论】:
-
我的主要意见是,如果您对 Java 完全不熟悉,那么这不是解决问题的正确问题!
-
我完全同意,但我得到了几行代码,展示了如何创建一个线程,让它打印一个单词,并且它被一些人认为足够了 -.- 如果我能弄清楚如何为了让线程的 run() 写入数组并唤醒其他线程,我想我可以弄清楚其余的。
-
notifyAll() 方法通知所有等待的线程。我猜你需要学习 wait(),notifyAll()
-
你是怎么得到这个的?是作业吗?您应该向您的助教或教授寻求帮助,他们需要知道学生何时遇到作业问题。
-
从每个线程将值写入 resultArray 怎么样?
标签: java arrays multithreading thread-sleep notify