簡體   English   中英

多線程在Java中打印偶數和奇數?

[英]Multi-threading to print even and odd numbers in java?

就語法而言,我對Java中的線程和多線程之間的區別感到有些困惑。 我需要編寫一個程序來打印偶數0到30,然后使用線程打印賠率,而另一個程序使用多線程打印同樣的事情。 我編寫了一個程序,該程序可以運行並且可以實現預期的功能,但是我不知道它是線程化還是多線程化,或者不知道如何去做。 這是我的程序

public class OddEven extends Thread {
public static void main(String args[]){
    Runnable r1 = new Runnable1();
    Thread t1 = new Thread(r1);
    Runnable r2 = new Runnable2();
    Thread t2 = new Thread(r2);
    t1.start();
    t2.start();
  }
}
class Runnable1 implements Runnable{
public void run(){
    for(int i=0; i<=30; i+=2) {
        System.out.println(i);
    }
  }
}
class Runnable2 implements Runnable{
public void run(){
    for(int i=1; i<=30; i+=2){
        System.out.println(i);
    }
  }
}

這個程序會被認為只是一個線程嗎?

public class OddEven {
public static void main(String args[]){
    for(int i=0; i<=30; i+=2) {
        System.out.println(i);
    }
    for(int i=1; i<=30; i+=2){
        System.out.println(i);
    }
}

}

多線程使您可以同時執行多項工作。

例如,如果您制作的游戲中有一個男孩向前移動並繼續射擊。 如果使用單線程系統,則男孩可能會向前移動或一次向敵人開火。 他不能同時完成兩項工作。

在您的情況下,當您調用t1.start(); ,然后啟動一個新線程,它將執行您的Runnable1's方法。 然后您調用了t2.start(); ,立即,另一個線程也將啟動,您的Runnable2's方法將被執行。

兩種方法將同時執行。 如果不使用多線程,則只有在完成第一個循環之后,下一個循環才會開始。

多線程主要用於主線程可能會長時間處理且您想使用該程序其他功能的程序中。

希望這可以幫助!!!!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM