gpt4 book ai didi

Java 多线程挑战

转载 作者:行者123 更新时间:2023-12-02 00:51:34 24 4
gpt4 key购买 nike

有人可以解释或举例说明如何在 Java 中创建具有不同功能的多个线程吗?

这是代码...我正在尝试创建一个线程来执行 public void rnd_list() 应该执行的操作(包含 30 个随机数的列表),这是一项与 public void run 中定义的任务不同的任务() 是 thread.start() 时默认执行的方法。我想知道如何在同一个 Apple 类中创建一个具有不同功能的线程,在本例中是 public void rnd_list() 中的线程。

import java.util.Random;

public class Apple implements Runnable {

String name;
int time, number, first, last, maximum;
Random r = new Random();
Random n = new Random();
int[] array = new int[10];

public Apple(String s, int f, int l) {
name = s;
first = f;
last = l;
maximum = array[0];
}

// public void rnd_list() {
// for(int j = 0; j < 30; j++) {
// number = n.nextInt(100);
// array[j] = number;
// System.out.println("thread" + name + "array [" + j + "] =" + array[j]);
// }
// }

public void run() {
try {
for(int i = first; i < last; i++ ) {
if(maximum < array[i]) {
maximum = array[i];
}
}

System.out.println("maximum = " + maximum);
} catch(Exception e) {}
}

public static void main(String[] args) {
Thread t1 = new Thread(new Apple("one ", 0, 2));
Thread t2 = new Thread(new Apple("two ", 3, 5 ));
Thread t3 = new Thread(new Apple("three ", 6, 9));

try {
t1.start();
t2.start();
t3.start();
} catch(Exception e) {}
}
}

最佳答案

当使用 Runnable 创建线程时,Runnable.run() 方法将在调用 Thread.start() 时运行。如果您希望运行 rnd_list() 方法,您有两个选择。

  1. 创建一个实现 Runnable 的新类,并让该类中的 run() 方法调用 rnd_list()
  2. 更改 Apple.run() 的实现以检查属于 Apple 的某些状态并可选择执行 rnd_list()。

关于Java 多线程挑战,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2800600/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com