[英]Wondering what I did wrong on my Java Thread Program?
我一直在研究Java中的線程,這是我嘗試通過運行2個不同的線程來輸出1-30中的偶數和1-30中的奇數的情況,每個線程都在不同的線程中。 我不確定我是否做錯了什么,希望您能給我一些幫助。
public class evenThread implements Runnable{
public static void run(){
System.out.println("Even Numbers: ")
for(int j = 2; j <= 30; j + 2){
System.out.println(", " & j);
}
}
}
public class oddThread implements Runnable{
public static void run(){
System.out.println("Odd Numbers: ")
for(int i = 1; i <= 30; i + 2){
System.out.print(", " & i);
}
}
}
public static void main(String args[]){
evenThread t1 = new evenThread();
oddThread t2 = new oddThread();
t1.start();
t2.start();
}
}
這是您需要使用的可運行對象:
Thread whatever=new Thread(new evenThread());
Thread whatever2=new Thread(new oddThread());
或使用擴展線程而不是可運行的工具
在runnable上沒有start方法,您可以知道,因為實現器從來不添加代碼,它只是告知其他內容您將在您的代碼中擁有一個方法,以便他們可以調用該方法。
我不知道您是如何編譯它的,因為運行方法應該不是靜態的,因為您假設第二次調用實例方法, oddThread
和evenThread
類應該在單獨的java文件中,或者應該是Main的內部類(當前您不知道)甚至有),並且從main引用的內部類也應標記為靜態。 我已修復您的代碼,如下所示,您可以檢查差異,例如用於連接字符串的+號
public class Main {
public static void main(String args[]) {
Thread t1 = new Thread(new evenThread());
Thread t2 = new Thread(new oddThread());
t1.start();
t2.start();
}
public static class evenThread implements Runnable {
public void run(){
System.out.println("Even Numbers: ");
for(int j = 2; j <= 30; j = j + 2){
System.out.print(", " + j);
}
}
}
public static class oddThread implements Runnable {
public void run(){
System.out.println("Odd Numbers: ");
for(int i = 1; i <= 30; i = i + 2){
System.out.print(", " + i);
}
}
}
}
evenThread和奇數線程實現Runnable。
要獲得可啟動的線程,您必須將它們包裝在線程中
Runnable even = new evenThread();
Thread t1 = new Thread(even);
t1.start();
不可能在Java中單獨啟動Runnables。
當然,運行方法一定不能是靜態的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.