程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java多線程---基礎

java多線程---基礎

編輯:關於JAVA

java多線程---基礎。本站提示廣大學習愛好者:(java多線程---基礎)文章只能為提供參考,不一定能成為您想要的結果。以下是java多線程---基礎正文


一, java多線程----線程與進程

  進程: 程序(任務)的執行過程,擁有資源(共享內存,共享資源)和線程(一個或者多個,至少一個)。  例如:打開任務管理器,qq,chrome,都屬於進程。

  線程:  系統中最小的執行單元,同一進程中有多個線程,線程共享進程的資源。       例如:qq的聊天發送消息。

      單線程:程序中只有一個線程,實際上主方法就是一個主線程。

   多線程:程序中運行多個任務,   目的是更好的使用cpu資源。

二,java多線程----線程的實現

  簡單一句話來說,繼承Thead類或者實現Runnable這個接口,然後重寫裡面的run方法。

繼承Thead類

 1 public class MyThead extends Thread{
 2     
 3     private String name;
 4     public MyThead(String name) {
 5         this.name = name;
 6     }
 7     @Override
 8     public void run() {
 9         for (int i = 0; i < 1000; i++) {
10             System.out.println(name+"------"+i);
11         }
12     }
13 }

實現Runnable接口

 1 public class MyRunnable  implements Runnable{
 2     
 3     private String name;
 4     public MyRunnable(String name) {
 5         this.name = name;
 6     }
 7     @Override
 8     public void run() {
 9         for (int i = 0; i < 1000; i++) {
10             System.out.println(name+"----"+i);
11         }
12         
13     }
14 
15 }

啟動線程

 1 public class TheadDemo {
 2 
 3     public static void main(String[] args) {
 4         MyThead t1 = new MyThead("t1");
 5         MyThead t2 = new MyThead("t2");
 6         
 7         t1.start();
 8         t2.start();
 9         
10         MyRunnable r1 = new MyRunnable("r1");
11         MyRunnable r2 = new MyRunnable("r2");
12         
13         Thread t3 = new Thread(r1);
14         Thread t4 = new Thread(r2);
15         
16         t3.start();
17         t4.start();
18     }
19 }

三,java多線程----線程的狀態

   創建狀態:創建多線程對象。

   就緒狀態: 調用start(),等待cpu調用。

   運行狀態: 執行run()。

   阻塞狀態:暫時停止執行,將資源交給其他線程使用。

   終止狀態:線程結束。

四,java多線程----常用的方法(thead類裡面)

  獲取當前線程的對象      currentThread()

  得到線程名稱               getName()

  判斷線程是否運行         isAlive()

  線程的強行運行            join()      例如:倆個線程t1,t2,    當在t1執行的時候,t2調用join()方法,t1暫停不執行,t2執行,執行完成後,釋放資源,t1接著執行。

  線程的休眠                 sleep()    例如:t1每執行一次,等待5秒      t1.sleep(5000)

  線程的禮讓                 yield()     例如:倆個線程t1,t2,    當在t1執行的時候,t1調用yield()方法,t1暫停不執行,t2執行,執行完成後,釋放資源,t1接著執行。

  

 

  

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved