第九章線程 — java學習筆記

來源:互聯網
上載者:User

因空間字數限制和發圖片的不方便歡迎訪問我的百度文庫!

http://wenku.baidu.com/view/9a02cb02de80d4d8d15a4f57.html

第九章線程9.1 線程的基本概念

1、線程是一個程式內部的順序控制流程(線程是一個程式中不同的執行路徑)。

2、線程和進程的區別

a) 每個進程都有獨立的代碼和資料空間,進程間的切換會有較大的開銷。

b) 線程可以看成輕量級的進程,同一類線程共用代碼和資料空間,每個線程有獨立的運行棧和程式計數器(PC),線程切換的開銷小。

c) 多進程:在作業系統中能同時運行多個任務(程式)。

d) 多線程:在同一應用程式中能有多個順序同時執行。

3、Java的線程是通過jva.lang.Thread類來實現的。

4、VM啟動時會有一個由主方法(public static void main(){})所定義的線程。

5、可以通過建立Thread的執行個體來建立線程。

6、每個線程都是通過某個特定的Thread對象所對應的方法run()來完成其操作的,方法run()稱為線程體。

7、通過調用Thread類的start()方法來啟動一個線程。

8、線程類的寫法

class Runner1 implements Runnable {//建議實用Runnable介面

//class Runner1 extends Thread {//不建議使用繼承!

public void run() {

for(int i = 0; i<100; i++) {

System.out.println("Runner1 :" + i);

}

}

}

9、線程的調用可以用run方法啟動,但這樣就是方法的調用,而不是多線程!

真正的是調用Thread的start()方法!

public class TestThread1 {

public static void main (String []args) {

Runner1 r = new Runner1();

//r.run();//這樣就是方法的調用的,並不是真正的多線程

Thread t = new Thread(r);

t.start();

for(int i = 0; i<100; i++) {

System.out.println("Main Thread :------" + i);

}

}

}

10、線程的建立和啟動

第一種:

1)定義現場類實現Runnable介面

2)Thread myThread = new Thread(target);//target為Runnable介面類型

3)Runnable中只有一個方法:

public void run(); 用以定義線程的運行體

4)使用Runnable介面可以為多個線程提供資料的共用

5)在實現Runnable介面的類的run方法定義中可以使用Thread的靜態方法

public static Thread currentThread() 讀取當前線程的引用

第二種:

1)可以頂一個Thread的之類並重寫其run方法如:

Class MyThread extends Thread {

public void run(){...}

}

2)然後產生該類的對象

MyThread myThread = new MyThread(...)

 TestThread1.java

public class TestThread1 {
public static void main (String []args) {
Runner1 r = new Runner1();
//r.run();
Thread t = new Thread(r);
t.start();
for(int i = 0; i<100; i++) {
//Thread.sleep(1);
System.out.println("Main Thread :------" + i);
}
}
}

//class Runner1 implements Runnable {
class Runner1 extends Thread {
public void run() {//重寫的方法不能拋出比被重寫方法不同的異常
for(int i = 0; i<100; i++) {
//Thread.sleep(1);
System.out.println("Runner1 :" + i);
}
}
}

下面內容請到百度文庫查看!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.