【发布时间】:2020-02-09 17:49:33
【问题描述】:
我试图把 f1.start();主命令(当我用 B 标记它时) 它给了我一个错误,我试图理解为什么。 所以我把它改成了现在的位置,我的程序按原样编译, 我只是好奇为什么。 谢谢。
package Try;
import java.util.Random;
import java.util.Scanner;
public class Foo1 extends Thread {
private int min_, max_;
Foo1(int max, Integer min) {
max_ = max;
min_ = min.intValue();
}
public void run() {
Random rand_gen = new Random();
while(true) {
try {
Thread.sleep(rand_gen.nextInt(max_-min_) + min_);
}catch (InterruptedException e){
e.printStackTrace();
}
System.out.println("you got new message");
}
}
public static void main(String[] args){
System.out.println("Insert 1 to start"); // C
Scanner sc = new Scanner(System.in); // D
int i = sc.nextInt();
if (i == 1) {
Foo1 f1;
//f1.start(); // B
int max = 1000;
Integer min = new Integer(1000);
Foo1 f2 = new Foo1(max, min);
f1 = f2; // A
f1.start();
}
}
}
【问题讨论】:
-
当你问为什么它给你一个错误时,你为什么不告诉它到底是什么错误?
标签: java multithreading memory