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:方式1 繼承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) 提供執行緒安全的佇列訪問方式; 當阻塞佇列進行插入資料時,若佇列滿,則執行緒阻塞,直到佇列非滿的時候 當阻塞佇列取資料時,若佇列為空,則執行緒阻塞直到佇列非空時候。