Java 線程啟動的幾種方式


啟動線程的五種方式

  public static void main(String[] args) {
        new MyThread().start();     //第一種  直接通過Thread  MyThread 是繼承了Thread對象的類  實現在下面
     
new Thread(new MyRun()).start(); //第二種 Runnable new Thread(()->{ //第三種 lambda System.out.println("Hello Lambda!"); }).start(); Thread t = new Thread(new FutureTask<String>(new MyCall())); //第四種 t.start(); ExecutorService service = Executors.newCachedThreadPool(); //第五種 使用Executor service.execute(()->{ System.out.println("Hello ThreadPool"); }); service.shutdown(); } }
public class T02_HowToCreateThread {
    static class MyThread extends Thread {
        @Override
        public void run() {
            System.out.println("Hello MyThread!");
        }
    }

    static class MyRun implements Runnable {
        @Override
        public void run() {
            System.out.println("Hello MyRun!");
        }
    }

    static class MyCall implements Callable<String> {
        @Override
        public String call() {
            System.out.println("Hello MyCall");
            return "success";
        }
    }

 

 

中斷線程的方法

 當線程的run方法執行方法體中的最后一條語句后,並經由執行return語句返回時,或者出現了在方法中沒有捕獲的異常時,線程將終止。

沒有可以強制線程終止的方法。然而,interrupt方法可以用來請求終止線程。

Java早期版本中,還有一個stop方法,其他線程可以調用它終止線程。但是這個方法已經被棄用了。

線程狀態

線程可以有如下6種狀態:

  • New (新創建)
  • Runnable (可運行)
  • Blocked (被阻塞)
  • Waiting (等待)
  • Timed waiting (計時等待)
  • Terminated (被終止)

要確定一個線程的當前狀態,可調用getState方法

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM