歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Java創建線程的三種方式

Java創建線程的三種方式

日期:2017/3/1 10:15:18   编辑:Linux編程

1)繼承Thread,重寫其的run方法

2)實現Runnable接口

代碼如下:

  1. package com.study;
  2. /**
  3. *
  4. * @ClassName: ThreadTest
  5. * @Description: 創建線程的兩種方式
  6. * @author 我夕
  7. */
  8. public class ThreadTest {
  9. public static void main(String[] args) {
  10. System.out.println("當前線程的名字:"+Thread.currentThread().getName()+";線程ID:"+Thread.currentThread().getId());
  11. ThreadOne one=new ThreadOne();
  12. one.setName("ThreadOne");//為了便於調試,建議創建時給線程設個名稱
  13. one.start();
  14. Thread two2=new Thread(new ThreadTwo());
  15. two2.setName("ThreadTwo");
  16. two2.start();
  17. }
  18. //繼承Thread,覆蓋父類run方法
  19. public static class ThreadOne extends Thread{
  20. @Override
  21. public void run() {
  22. // TODO Auto-generated method stub
  23. super.run();
  24. //do xx
  25. System.out.println("當前線程的名字:"+Thread.currentThread().getName()+";線程ID:"+Thread.currentThread().getId());
  26. }
  27. }
  28. //實現Runnable接口
  29. public static class ThreadTwo implements Runnable{
  30. @Override
  31. public void run() {
  32. // TODO Auto-generated method stub
  33. //do xx
  34. System.out.println("當前線程的名字:"+Thread.currentThread().getName()+";線程ID:"+Thread.currentThread().getId());
  35. }
  36. }
  37. }

總結:

創建線程的傳統方式就上面兩種(這裡不考慮jdk1.5種線程並發庫裡的創建方式,後續會寫到),但寫的方式卻是多種多樣,希望初學者不要被其搞混掉

兩種方式都可以創建線程,第一種方式創建比較簡單,但由於java是單繼承的緣故,創建出的Thread子類就無法在繼承其他類;實現Runnable接口的方式可以將cpu、代碼和數據分開,同時創建出的線程可以共享處理同一份資源。

記住:Thread類本身也實現了Runnable接口,因此Thread類及其子類的對象也可以作為target傳遞給新的線程對象。

Copyright © Linux教程網 All Rights Reserved