[英]Java and 2 threads
我正在嘗試學習Java的線程以進行分配,但我不明白我如何讓每個線程都能做自己的代碼。 我也收到一個錯誤:
Program.java:1: error: Program is not abstract and does not override abstract me
thod run() in Runnable
public class Program implements Runnable {
^
1 error
因為它是作業所必需的,所以我必須在同一個文件中做所有事情,所以我嘗試了下面的代碼:
public class Program implements Runnable {
Thread thread1 = new Thread () {
public void run () {
System.out.println("test1");
}
};
Thread thread2 = new Thread () {
public void run () {
System.out.println("test2");
}
};
public void main (String[] args) {
thread1.start();
thread2.start();
}
}
你可以幫我解決一下,並展示如何讓2個線程相互執行不同的任務嗎? 我已經看過打印線程名稱的例子,但我沒有發現它們有用。 謝謝。
您的Program
類定義為實現Runnable
接口。 因此它必須覆蓋並實現run()
方法:
public void run () {
}
由於您的兩個Thread
對象使用匿名內部 Runnable
類,因此您不需要並且應該從Program
類定義中刪除implements Runnable
。
public class Program {
...
嘗試這個:
class Program {
public static void main(String[] args) {
Thread thread1 = new Thread() {
@Override
public void run() {
System.out.println("test1");
}
};
Thread thread2 = new Thread() {
@Override
public void run() {
System.out.println("test2");
}
};
thread1.start();
thread2.start();
}
或者您可以創建一個單獨的類來實現Runnable
和ovverriding方法run()
。 然后在main
方法中創建一個Thread
實例,並將您的類對象作為參數:
class SomeClass implements Runnable {
@Override
run(){
...
}
}
在主要:
Thread thread = new Thread(new SomeClass());
implement
interface
(例如Runnable
)時, 必須實現其方法,在本例中為run
。
否則,您的應用程序要編譯並運行,只需從類聲明中刪除implements Runnable
:
public class Program {
public void main (String[] args) {
Thread thread1 = new Thread () {
public void run () {
System.out.println("test1");
}
};
Thread thread2 = new Thread () {
public void run () {
System.out.println("test2");
}
};
thread1.start();
thread2.start();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.