005:多線程

進(jìn)程

1:運(yùn)行時(shí)的(runtime)應(yīng)用程序行剂。
2:進(jìn)程之間的內(nèi)存不共享。
3:進(jìn)程間的通信使用socket(套接字)暑始。

多線程

1:進(jìn)程內(nèi)并發(fā)執(zhí)行的代碼段
2:線程之間共享內(nèi)存
3:創(chuàng)建靈活響應(yīng)的桌面程序
4:每一個(gè)運(yùn)行著的線程對(duì)應(yīng)一個(gè)stack
5:應(yīng)用程序至少的有一個(gè)線程(主線程)

創(chuàng)建線程的方式

創(chuàng)建類繼承Thread類
1:子類覆蓋父類中的run方法凭迹,將線程運(yùn)行的代碼存放到run方法中摊聋。
2:建立子類對(duì)象的同時(shí)線程也被創(chuàng)建。
3:通過(guò)調(diào)用start方法開(kāi)啟線程璧瞬。

 class ThreadDemo{
    public static void main(String[] args){
        IThread t = IThread();
        t.start();
    }
}
class IThread extends Thread{
    public void run(){
        System.out.println("thread");
    }
}

Thread的常見(jiàn)方法:
1:Thread.yield()
讓當(dāng)前的線程讓出CPU的搶占權(quán)户辫。
2:Thread,sleep()
讓當(dāng)前線程休息指定的毫秒數(shù)。
3:Thread.join()
當(dāng)前的線程等待指定的線程結(jié)束以后才能繼續(xù)執(zhí)行嗤锉。
Thread t = xxx;
t.join();
此時(shí)t執(zhí)行完后其他線程才能繼續(xù)執(zhí)行渔欢。
4:daemon
守護(hù)線程,為其他線程提供服務(wù)的線程瘟忱。如果進(jìn)程中剩余的線程都是守護(hù)線程的話奥额,則進(jìn)程就終止了。
Tread.setDaemon(true);

線程間的通信访诱,資源共享的問(wèn)題垫挨。

  • 導(dǎo)致線程不安全的原因:多個(gè)線程訪問(wèn)出現(xiàn)延遲,線程的隨機(jī)性触菜。注意:線程安全問(wèn)題在理想的狀態(tài)下是不容易出現(xiàn)的九榔,但是一旦出現(xiàn)對(duì)軟件的影響是非常大的。

鎖:synchronized

鎖:阻止并發(fā)訪問(wèn)涡相,該為串行的形式訪問(wèn)哲泊。
設(shè)置鎖的時(shí)候一定要有唯一的一個(gè)參照物,鎖旗標(biāo),鎖旗標(biāo)可以是任何對(duì)象
public static object = new Object();
synchronized(object){
}
同步代碼塊的形式
synchronized{
}
同步代碼塊執(zhí)行期間漾峡,線程始終持有對(duì)象的監(jiān)控權(quán)攻旦,此時(shí)其他的線程處于阻塞狀態(tài)。
1:同步方法以當(dāng)前所在的對(duì)象做鎖旗標(biāo)
synchronized(this)
2:同步靜態(tài)方法生逸,使用類作為同步的鎖旗標(biāo)
public static synchronized xxxx(xxxx){
}
3:wait
讓當(dāng)前線程進(jìn)入鎖旗標(biāo)的等待隊(duì)列牢屋,釋放CPU搶占去權(quán)且预,還釋放鎖旗標(biāo)的監(jiān)控權(quán),wait一般在synchronized中使用
4.烙无。:解決死鎖的問(wèn)題
notifyAll()通知所有的線程可槍占CPU的鎖旗標(biāo)的監(jiān)控權(quán)
wait(1000),給wait指定毫秒數(shù)锋谐,讓當(dāng)前隊(duì)列等待一段時(shí)間后就不再等待了


Thread實(shí)現(xiàn)了Runnable接口,如果類已經(jīng)被創(chuàng)建并且繼承了其他的類截酷,那么可以用接口的形式創(chuàng)建線程:
new Thread(Runnable r).start();

同步函數(shù)

在函數(shù)上加上synchronized修飾符即可

線程的狀態(tài)補(bǔ)充

  • NEW
    至今尚未啟動(dòng)的線程處于這種狀態(tài)涮拗。
  • RUNNABLE
    正在 Java 虛擬機(jī)中執(zhí)行的線程處于這種狀態(tài)。
  • BLOCKED
    受阻塞并等待某個(gè)監(jiān)視器鎖的線程處于這種狀態(tài)迂苛。
  • WAITING
    無(wú)限期地等待另一個(gè)線程來(lái)執(zhí)行某一特定操作的線程處于這種狀態(tài)三热。
  • TIMED_WAITING
    等待另一個(gè)線程來(lái)執(zhí)行取決于指定等待時(shí)間的操作的線程處于這種狀態(tài)。
  • TERMINATED
    已退出的線程處于這種狀態(tài)三幻。
  • SLEEP
    休眠
    在給定時(shí)間點(diǎn)上就漾,一個(gè)線程只能處于一種狀態(tài)。這些狀態(tài)是虛擬機(jī)狀態(tài)念搬,它們并沒(méi)有反映所有操作系統(tǒng)線程狀態(tài)抑堡。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市朗徊,隨后出現(xiàn)的幾起案子首妖,更是在濱河造成了極大的恐慌,老刑警劉巖爷恳,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件有缆,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡温亲,警方通過(guò)查閱死者的電腦和手機(jī)妒貌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)铸豁,“玉大人,你說(shuō)我怎么就攤上這事菊碟〗诮妫” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵逆害,是天一觀的道長(zhǎng)头镊。 經(jīng)常有香客問(wèn)我,道長(zhǎng)魄幕,這世上最難降的妖魔是什么相艇? 我笑而不...
    開(kāi)封第一講書人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮纯陨,結(jié)果婚禮上坛芽,老公的妹妹穿的比我還像新娘留储。我一直安慰自己,他們只是感情好咙轩,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布获讳。 她就那樣靜靜地躺著,像睡著了一般活喊。 火紅的嫁衣襯著肌膚如雪丐膝。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 49,031評(píng)論 1 285
  • 那天钾菊,我揣著相機(jī)與錄音帅矗,去河邊找鬼。 笑死煞烫,一個(gè)胖子當(dāng)著我的面吹牛浑此,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播红竭,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼尤勋,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了茵宪?” 一聲冷哼從身側(cè)響起最冰,我...
    開(kāi)封第一講書人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎稀火,沒(méi)想到半個(gè)月后暖哨,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡凰狞,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年篇裁,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赡若。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡达布,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出逾冬,到底是詐尸還是另有隱情黍聂,我是刑警寧澤,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布身腻,位于F島的核電站产还,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏嘀趟。R本人自食惡果不足惜脐区,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望她按。 院中可真熱鬧牛隅,春花似錦炕柔、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至丈攒,卻和暖如春哩罪,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背巡验。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工际插, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人显设。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓框弛,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親捕捂。 傳聞我的和親對(duì)象是個(gè)殘疾皇子瑟枫,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • Java多線程學(xué)習(xí) [-] 一擴(kuò)展javalangThread類 二實(shí)現(xiàn)javalangRunnable接口 三T...
    影馳閱讀 2,952評(píng)論 1 18
  • 本文主要講了java中多線程的使用方法、線程同步指攒、線程數(shù)據(jù)傳遞慷妙、線程狀態(tài)及相應(yīng)的一些線程函數(shù)用法、概述等允悦。 首先講...
    李欣陽(yáng)閱讀 2,442評(píng)論 1 15
  • 寫在前面的話: 這篇博客是我從這里“轉(zhuǎn)載”的膝擂,為什么轉(zhuǎn)載兩個(gè)字加“”呢?因?yàn)檫@絕不是簡(jiǎn)單的復(fù)制粘貼隙弛,我花了五六個(gè)小...
    SmartSean閱讀 4,711評(píng)論 12 45
  • 1.解決信號(hào)量丟失和假喚醒 public class MyWaitNotify3{ MonitorObject m...
    Q羅閱讀 871評(píng)論 0 1
  • Java-Review-Note——4.多線程 標(biāo)簽: JavaStudy PS:本來(lái)是分開(kāi)三篇的架馋,后來(lái)想想還是整...
    coder_pig閱讀 1,629評(píng)論 2 17