2014-07-01 54 views
0
public class MyThread{ 

    public MyThread(int m) { 
     super(); 
    } 

    public void run() { 
     for (int x = 0; x < 201; x++) { 
      System.out.println("Thread Running" + x);  
     } 
    } 

    public static void main(String[] args) { 
     MyThread mt = new MyThread(200); 
    } 
} 

代碼正在運行,但未打印出來。這可能是構造函數,但老師告訴我只做一個公共無效運行和一個允許代碼運行的主要方法。我的代碼未打印但正在工作

還讓我知道如果我問的是錯誤類型的問題,我試着查看'如何提出問題'以獲得更好的問題。

+1

你必須要對()的線程。您還需要實現Runnable或擴展Thread。 http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html –

+0

以及我做了mt.start();但它一直給我錯誤,所以我刪除它感謝您的幫助! – user3788930

+0

查看[The Java Tutorials:Concurrency](http://docs.oracle.com/javase/tutorial/essential/concurrency/index.html),獲取有關如何使用線程的明確說明。 – Barranka

回答

2

你有兩個選擇:

  1. 擴展Thread

    public class MyThread extends Thread{ 
    

    然後調用mainstart()

    mt.start(); 
    
  2. 執行Runnable

    public class MyThread implements Runnable{ 
    

    然後開始新的Thread傳入你的對象,並調用start()

    Thread t = new Thread(mt); 
    t.start(); 
    
+2

我個人更喜歡第二種選擇,因爲它不會將類綁定爲「線程」的子類。 – Barranka

+0

我原本以爲做家庭作業,我的老師說Runnable是最好的使用,但他希望我們都學習。感謝您的幫助!你有最好的答案! C: – user3788930

+0

@Barranka我更喜歡第二種選擇,因爲你已經給了。 – rgettman

2

看起來你錯過了MyThread的implements Runnable。然後你需要start()你的mt線程。

+0

傻我!問題解決了! – user3788930

相關問題