亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

多線程基礎

2019-11-14 21:13:18
字體:
來源:轉載
供稿:網友
多線程基礎
  1. 線程與進程的關系:

進程:是指在系統中正在運行的一個運用程序實例,它包括代碼加載,執行和執行完畢一個完整的過程,也是進程本身從產生發展到消亡的過程。

線程:是比進程更小的執行單位,是在進程的基礎上進行的進一步的化分,多線程是指一個進程在執行的過程中可以產生多個同時存在,同時運行的線程。

多線程的優點:多線程機制可以合理的利用資源,提高程序的運行效率(解決程序多部分同時運行的問題)。一個進程至少包含一個線程,程序運行時即自動產生一個線程。

多線程的弊端:線程太多會導致整體效率降低

  1. 如何創建一個線程:

創建線程方式一:繼承Thread類

  1. 定義一個類繼承Thread類
  2. 覆蓋Thread類中的run 方法
  3. 直接創建Thread的子類對象創建線程
  4. 調用start方法開啟線程,并調用線程任務的run方法執行

可以通過Thread類的getName方法獲取線程的名稱,Thread-編號(從零開始)

public class Test extends Thread {

PRivate String name;

public Test(String name)

{

this.name=name;

}

public void run()//運行線程

{

for(int i=1;i<=15;i++)

{

System.out.println(name+"運行,i="+i);

}

}

public static void main(String [] args)

{

Test a= new Test("線程A");//創建一個線程對像

a.start();//開啟運行線程

Test b= new Test("線程B");

b.start();

}

}

創建線程的第二種方式:實現Runnable接口

1. 定義類實現Runnable接口

  1. 覆蓋接口中的run方法,將線程中的任務代碼封裝到run方法中。
  2. 通過Thread類創建線程對象,并將Runnable接口的子類對象作為Thread的構造函數的參數進行傳遞。
  3. 調用線程對象的start方法,開啟線程。

例如:

public class Test implements Runnable{

private String name;

public Test(String name)

{

this.name=name;

}

public void run()

{

for(int i=1;i<=15;i++)

{

System.out.println(name+"運行,i="+i);

}

}

public static void main(String [] args)

{

Test a= new Test("線程A");

Test b=new Test("線程B");

Thread a1=new Thread(a);

Thread b1=new Thread(b);

a1.start();

b1.start();

}

}

實現Runnable接口的好處:

1. 將線程的任務從線程的子類中分離出來,進行了單獨的封裝。按照面向對象的思想將任務封裝成了對象。

  1. 避免了java的單繼承的局限性。
  2. 適合多個具有相同程序代碼的線程處理同一資源。

所以創建線程的第二種方式比較常用。

線程安全問題產生的原因:

  1. 多條線程在操作共享的數據。
  2. 操作共享數據的線程代碼有多條。

當一個線程在執行操作共享數據的多條代碼的過程中其他線程參與了運算就會導致線程安全問題。

在java中用同步代碼塊可以解決線程安全問題

同步代碼塊的格式:

synchronized(同步對象)

需要被同步的代碼。

同步對象是指為對象加上資源鎖,即一定時間范圍內只允許一個線程使用當前的同步對象,其他線程必須等待當前線程使用結束后才能使用該對象,通常情況下將當前的this對象或Object對象。

同步的好處:解決了線程的安全的問題。

同步的弊端:相對降低了效率因為同步外的線程都會判斷同步鎖(判斷同步對象)

同步的前提:同步中必須有多個線程并使用同一個同步對象。

也可以使用同步方法來解決線程安全問題:同步方法是指使用了synchronized關鍵字聲明方法,即為方法加上資源訪問鎖同一時間只允許一個線程調用此同步方法,其他線程必須等待當前線程調用結束后才能調用此同步方法。

同步方法和同步代碼塊的區別:  同步函數的鎖是this

                同步代碼塊的鎖是任意對象

                首選同步代碼塊。

注意:靜態同步函數使用的鎖是該函數所屬的字節碼文件的對象,可以用getClass()方法獲取,也可以使用類名.class來表示

死鎖:死鎖的常見情景之一同步的嵌套

多線程的等待喚醒機制:

方法:

  wait(); 讓線程處于凍結狀態,被wait的線程會被存儲到線程池中

  notify();喚醒線程池中的一個線程

  notifyAll(); 喚醒線程池中的所有線程

這些方法都必須定義在同步中,因為這些方法都是用于操作線程狀態的方法,必須明確到底要操作的是哪個鎖上的線程。

jdk1.5以后將同步和鎖封裝成了對象,并將操作鎖的隱式方式定義到了該對象中,將隱式動作變成了顯示動作。

Lock接口:的出現替代了同步代碼塊或同步函數,將同步的隱式鎖變成現實鎖操作,同時更為靈活, 在一組鎖上添加多組監視器

lock();獲取鎖

unlock();釋放鎖,同時需要放到finally代碼塊中

Condition接口:的出現替代了Object中的wait notify notifyAll方法將這些監視器方法單獨進行了封裝,變成了Condition監視器對象,可以和任意鎖進行組合

await(); 等同于wait();

signal();等同于notify();

signalAll();等同于notifyAll();

wait();和sleep();的區別?

  1. wait();可以指定時間,也可以不指定,sleep();必須指定時間
  2. 在同步中對cpu的執行權和鎖的處理不同
  3. wait();釋放執行權,釋放鎖
  4. sleep();釋放執行權,不釋放鎖

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩一区二区欧美| 欧美日韩中国免费专区在线看| 亚洲国模精品私拍| 亚洲精品720p| 一区二区三区四区视频| 成人深夜直播免费观看| 色播久久人人爽人人爽人人片视av| 国产99视频在线观看| 成人免费福利在线| 欧美日韩国产页| 俺去啦;欧美日韩| 欧美在线视频免费观看| 亚洲欧美日韩中文视频| 黄色成人在线播放| 一区二区三区四区视频| 国产精品色悠悠| 欧美激情网站在线观看| 成人精品aaaa网站| 欧美一区二区影院| 日韩精品免费一线在线观看| 亚洲激情在线观看| 国产精品丝袜久久久久久不卡| 日韩免费在线观看视频| 欧美日韩亚洲一区二区| 欧美精品在线视频观看| 夜夜嗨av色一区二区不卡| 国产精品日韩欧美大师| 亚洲精品ady| 亚洲欧美国产视频| 亚洲精品一区av在线播放| 欧美日韩裸体免费视频| 色午夜这里只有精品| 粉嫩av一区二区三区免费野| xxx欧美精品| 亚洲福利视频网| 91美女片黄在线观看游戏| 国产成人精品综合久久久| 日韩精品欧美国产精品忘忧草| 日韩高清欧美高清| 国产91精品在线播放| 国产精品中文字幕在线观看| 九九视频这里只有精品| 成人乱人伦精品视频在线观看| 国产精品美女呻吟| 亚洲第一视频在线观看| 黄色精品一区二区| 欧美激情视频一区二区三区不卡| 日韩高清av在线| 91av视频导航| 在线观看国产精品日韩av| 成人美女av在线直播| 91在线高清视频| 97超级碰在线看视频免费在线看| 精品国产区一区二区三区在线观看| 亚洲图片在区色| 亚洲精品av在线播放| 国产亚洲精品久久久久久牛牛| 伊人伊人伊人久久| 久久精品在线视频| 欧美做受高潮1| 欧美一性一乱一交一视频| 国产99久久精品一区二区 夜夜躁日日躁| 色偷偷888欧美精品久久久| 一区二区三区www| 亚洲人成在线免费观看| 国产精品久久久久久久久粉嫩av| 国产日韩欧美日韩| 亚洲欧美在线免费| 亚洲成人精品视频在线观看| 欧美成人免费一级人片100| 97国产精品视频人人做人人爱| 久久99精品久久久久久噜噜| 久色乳综合思思在线视频| 久久精品国产96久久久香蕉| 日韩欧美中文第一页| 激情亚洲一区二区三区四区| 欧美成人在线网站| 国产福利精品av综合导导航| 欧美日韩在线视频首页| 亚洲视频在线视频| 久久久久久久久久久网站| 国产精品久久一| 欧美成人午夜激情在线| 国产精品欧美久久久| 久久久噜噜噜久噜久久| 久久精品国产亚洲7777| 欧美人交a欧美精品| 亚洲成人999| 精品露脸国产偷人在视频| 国产亚洲欧美一区| 亚洲成人在线视频播放| 精品香蕉一区二区三区| 久久av红桃一区二区小说| 国产精品偷伦免费视频观看的| 欧美性色19p| 欧美视频在线免费| 国产精品久久久久久婷婷天堂| 日韩久久精品电影| 欧美影院成年免费版| 日本成人精品在线| 中文在线资源观看视频网站免费不卡| 国产精品极品美女粉嫩高清在线| 91热精品视频| 国产成人欧美在线观看| 久久久久久久国产精品视频| 亚洲色图第三页| 国产精品久久久久久久av大片| 亚洲精品第一页| 欧美在线视频导航| 久久欧美在线电影| 欧美精品久久久久久久| 国产成人中文字幕| 91久久夜色精品国产网站| 成人av资源在线播放| 日韩精品亚洲元码| 国产精品白嫩初高中害羞小美女| 日韩在线观看免费全| 美女少妇精品视频| 91在线视频导航| 国产成人avxxxxx在线看| 日韩一级黄色av| 一色桃子一区二区| 欧美日韩性视频在线| 欧美在线视频网| 91夜夜未满十八勿入爽爽影院| 国产成人精品一区二区在线| 亚洲电影成人av99爱色| 国产精品自产拍高潮在线观看| 国产精品久久精品| 精品福利在线观看| 日韩免费在线播放| 欧美人在线观看| 日韩网站在线观看| 色综合久久悠悠| 欧美成年人在线观看| 国产精品揄拍一区二区| 韩曰欧美视频免费观看| 91亚洲国产成人久久精品网站| 96精品久久久久中文字幕| 欧美激情在线一区| 精品国产一区二区三区四区在线观看| 成人高清视频观看www| 亚洲美女激情视频| 成人免费xxxxx在线观看| 91中文精品字幕在线视频| 亚洲精美色品网站| 久久亚洲影音av资源网| 国产欧美一区二区白浆黑人| 久久精品国产欧美激情| 欧美日韩综合视频网址| 亚洲资源在线看| 亚洲一区免费网站| 日韩av最新在线| 日韩精品中文字幕在线播放| 欧美精品电影在线| 精品成人国产在线观看男人呻吟| 欧美片一区二区三区| 亚洲成人精品久久| 91精品国产综合久久男男| 国产精品av电影| 在线成人免费网站| 欧美大秀在线观看| 色综合伊人色综合网| 亚洲精品国产精品乱码不99按摩|