1. 程式人生 > >java基礎之——多執行緒

java基礎之——多執行緒

	程式碼體現:

public class MyThread extends Thread

{

public void run()

{

for(int x=0; x<100; x++)

{

System.out.println(getName()+"---"+"hello"+x);

}

}

}

 

public MyThreadTest

{

public static void main(String[] args)

{

MyThread my1 = new MyThread();

MyThread my2 = new MyThread();

 

my1.start();

my2.start();

}

}

多執行緒(理解)

(1)就是應用程式有多條執行路徑。

程序:就是正在執行的程式。

執行緒:就是程序的執行路徑,執行單元。

(2)如何使用多執行緒程式:(掌握)

A:方式繼承Thread類。

a:建立類繼承Thread

b:重寫Thread類的run()方法。

run()方法裡面才是封裝執行緒的程式碼。

c:通過呼叫start()方法啟動執行緒並呼叫run()方法。


B:方式2 實現Runnable介面

a:建立一個類實現Runnable介面

b:重寫run()方法

c:建立實現類物件,並把它作為引數傳遞給Thread類的構造方法,建立Thread物件

d:通過Thread的物件執行

	程式碼體現:

 

public class MyRunnable implements Runnable

{

public void run()

{

public void run()

{

for(int x=0; x<100; x++)

{

System.out.println(Thread.currentThread().getName()+"---"+"hello"+x);

}

}

}

}

 

public class MyRunnableTest

{

public static void main(String[] args)

{

MyRunnable my = new MyRunnable();

 

Thread t1 = new Thread(my);

Thread t2 = new Thread(my);

 

t1.start();

t2.start();

}

}


(3)執行緒的隨機性原理

多個程式其實是CPU的在做著高效切換執行的。

(4)執行緒的生命週期(面試題 自己補齊)

新建

就緒

執行

阻塞

死亡

(5)執行緒安全問題

A:賣票案例

B:為什麼有問題

a:有共享資料

b:共享資料被多條語句操作

c:在多執行緒環境中

(6)執行緒安全問題的解決方案:

A:同步程式碼塊

synchronized(鎖物件)

{

被同步的程式碼

}

B:同步方法

synchronized加在方法上。

一般推薦使用同步程式碼塊。

(7)執行緒間的通訊問題

學生類:

設定學生屬性的類:

獲取學生屬性的類:

測試類:

(8)常見的方法

優先順序

暫停執行緒

加入執行緒

守護執行緒

(9)面試題:

sleep()wait()的區別?

啟動執行緒到底呼叫的是哪個方法?

run()start()的區別?

同步的原理,以及有幾種實現方式?


相關推薦

Java基礎執行及併發庫

實際上關於多執行緒的基礎知識,前面自己已經總結過一部分,但是每一個階段對於同樣知識點的學習側重點是不一樣的,前面的Java基礎總結八之多執行緒(一)和 Java基礎總結九之多執行緒(二)是對JDK5以前多執行緒相關基礎知識的一個簡單總結,今天本文將偏重於JDK5提供的併發庫進行學習總結。 首先,

黑馬程式設計師----Java基礎執行

------- <a href="http://www.itheima.com" target="blank">android培訓</a>、<a href="http://www.itheima.com" target="blank">java培訓</a&g

Java基礎執行-生產消費

使用場景請看上一篇部落格Java基礎之多執行緒-多生產多消費 話不多說,直接上程式碼: 顧客: package cn.itcast.day07.demo02; public class MultiConsumer implements Runnable { priva

Java基礎執行案例-單生產單消費

在講單生產單消費之前,我們先來說一下執行緒間通訊的問題 一、 執行緒間通訊 概念:多個執行緒在處理同一個資源,但是處理的動作(執行緒的任務)卻不相同。 比如:執行緒A用來生成包子的,執行緒B用來吃包子的,包子可以理解為同一資源,執行緒A與執行緒B處理的動作,一個是生產,一個是消費,

Java基礎執行原理、實現方式及匿名內部類建立執行方法

一、概念 程序:作業系統當中正在執行的一個程式。例如正在執行一個QQ。 執行緒:程序之內多工的執行單位。例如迅雷當中正在下載的多個電影。 JVM當中:棧(Stack)記憶體是執行緒獨立的,堆(Heap)記憶體是執行緒共享的。 (1)Java程式執行的時候至少有兩個執行緒: 1)主

sincerit java基礎執行

執行緒狀態 Java執行緒具有五中基本狀態 新建狀態(New):當執行緒物件對建立後,即進入了新建狀態,如:Thread t = new MyThread(); 就緒狀態(Runnable):當呼叫執行緒物件的start()方法(t.start();),執行緒即進入就緒狀態。處於就

Java基礎執行

以下是我們Java基礎多執行緒的一些知識點總結: 執行緒中run()和start()的區別:   對於Thread物件來說,當你呼叫的是start(),執行緒會被放到等待佇列,等待CPU排程,不一定馬上執行;無需等待run()方法執行完畢,可以直接執行下面的程式碼; 而呼叫的是run()的話,就是當做普通的方

java基礎——執行

程式碼體現: public class MyThread extends Thread { public void run() { for(int x=0; x<100; x++) { System.out.println(getName()+"--

java基礎執行的練習題

題目如下: 某公司組織年會,會議入場時有兩個入口,在入場時每位員工都能獲取一張雙色球彩票,假設公司有100個員工,利用多執行緒模擬年會入場過程,並分別統計每個入口入場的人數,以及每個員工拿到的彩票的號碼。執行緒執行後列印格式如下:編號為: 2 的員工 從後門 入場! 拿到的

Java基礎執行

        /* 這是flag=1這個執行緒 */         if (flag == 1) {             synchronized (o1) {                 /* 使用synchronized關鍵字把物件01鎖定了 */                 try {

黑馬程式設計師--Java基礎執行

------- <a href="http://www.itheima.com" target="blank">android培訓</a>、<a href="http://www.itheima.com" target="blank">j

黑馬程式設計師——java基礎執行

---------------------- ASP.Net+Android+IOS開發、.Net培訓、期待與您交流! ---------------------- 1. Java 多執行緒程式設計     Java 語言的優勢之一就是執行緒處理較為簡單。     一般

Java基礎學習——執行執行

1.執行緒池介紹     執行緒池是一種執行緒使用模式。執行緒由於具有空閒(eg:等待返回值)和繁忙這種不同狀態,當數量過多時其建立、銷燬、排程等都會帶來開銷。執行緒池維護了多個執行緒,當分配可併發執行的任務時,它負責排程執行緒執行工作,執行完畢後執行緒不關閉而是返回執行緒池,

Java基礎執行執行

1.執行緒池的概念與Executors類的應用     應用需求:如果訪問伺服器的客戶端很多,那麼伺服器要不斷的建立和銷燬執行緒,這將嚴重的影響伺服器的效能     解決方法:首先建立一些執行緒,它

.NET基礎執行開發基礎

轉自:http://www.cnblogs.com/edisonchou/p/4848131.html   多執行緒開發基礎  Index :  (1)型別語法、記憶體管理和垃圾回收基礎  (2)面向物件的實現和異常的處理基礎

JAVA複習執行

java中多執行緒同步是什麼? 在多執行緒程式下,同步能控制對共享資源的訪問。如果沒有同步,當一個java縣城在修改一個共享變數時,另外一個執行緒正在使用或者更新同一個變數,這樣容易導致程式出現錯誤。 解釋實現多執行緒的幾種方法?區別是什麼? Java執行緒可以實現Runnable介面或

Python中的執行程式設計,執行安全與鎖(一) 聊聊Python中的GIL 聊聊Python中的GIL python基礎執行鎖機制 python--threading執行總結 Python3入門執行threading常用方法

1. 多執行緒程式設計與執行緒安全相關重要概念 在我的上篇博文 聊聊Python中的GIL 中,我們熟悉了幾個特別重要的概念:GIL,執行緒,程序, 執行緒安全,原子操作。 以下是簡單回顧,詳細介紹請直接看聊聊Python中的GIL  GIL:&n

java面試執行(未完待續)

1.什麼是多執行緒? 在一個應用程式中,同時,有多個不同的執行路徑。 2.執行緒和程序有什麼區別? 執行緒是程序的一條執行路徑,而程序是執行緒的集合。 3.什麼是執行緒同步、非同步? 執行緒同

Java基礎14--執行

14-1,多執行緒-執行緒間通訊示例 1,什麼是多執行緒間通訊? 多執行緒通訊:多個執行緒在處理同一個資源,但是任務不同。 比如說:有一堆煤(資源),一輛卡車向裡放煤(Input),一輛卡車向外取煤(output),放煤和取煤的任務不同,但操作的是同一個資源。 由於有兩個任務,所

JAVA基礎24-執行(四)【讀寫鎖,阻塞佇列,執行池】

一、讀寫鎖   使用步驟 二、阻塞佇列 (BlockingQueue) 提供執行緒安全的佇列訪問方式; 當阻塞佇列進行插入資料時,若佇列滿,則執行緒阻塞,直到佇列非滿的時候 當阻塞佇列取資料時,若佇列為空,則執行緒阻塞直到佇列非空時候。