我想調用兩個具有不同參數的構造函數,它們依次運行它們各自的線程,但問題是它只允許一個run()
方法,是否有我可以在一個方法中運行兩個run()
方法類??或任何其他解決這種情況?實現可運行的抽象類 - 多線程
class Threading implements Runnable {
Thread t;
Thread t1;
String name;
Threading(String s) {
name = s;
t = new Thread(this, name);
System.out.println("Constructor 1: " + t);
t.start();
}
public void run() {
try {
for (int i = 5; i > 0; i--) {
System.out.println("Constructor 1: " + i);
Thread.sleep(2000);
}
} catch (Exception e) {
}
System.out.println("Constructor1 exiting");
}
Threading(int a, int b) {
t1 = new Thread(this, "java2 Thread");
System.out.println("Constructor 2: " + t1);
t1.start();
}
public void run() {
try {
for (int i = 5; i > 0; i++) {
System.out.println("Constructor 2: " + i);
Thread.sleep(3000);
}
} catch (Exception e) {
}
System.out.println("Constructor2 exiting");
}
}
MultipleThread
class MultipleThread {
public static void main(String[] args) {
new Threading("java thread"); // Constructor 1
new Threading(1, 2); // Constructor 2
try {
for (int i = 5; i > 0; i--) {
System.out.println("Print: " + i);
Thread.sleep(1000);
}
} catch (Exception e) {
}
System.out.println("Exit Main");
}
}
爲什麼不只是有兩個類?你爲什麼試圖用同一個班呢? –
格式化可以改進... – shmosel
另一種方法是在構造函數中使用匿名內部可運行子程序。線程(字符串){新的Runnable(){運行(){/ /你的邏輯}}} –