2021-01-05-線程

1.創(chuàng)建線程的三種方式:

1.1 繼承Thread

1.2 實(shí)現(xiàn)Runnable接口

1.3 實(shí)現(xiàn)FutureTask<T> 包裝Callable接口 (區(qū)別于run執(zhí)行方法贯莺,call可帶返回值)

優(yōu)缺點(diǎn):

繼承Thread類方式優(yōu)點(diǎn)就是獲取當(dāng)前線程比較方便 缺點(diǎn)就是不能繼承其他類

實(shí)現(xiàn)runnable 或者 callable? 可以多個(gè)線程共享同一個(gè)target,并且可以繼承其他類

2.線程的生命周期

2.1 新建:實(shí)例化線程類晨雳,線程就處于新建狀態(tài)轻姿,此時(shí)分配內(nèi)存并初始化吕世。

2.2 就緒: 調(diào)用線程的start方法后艺演,此時(shí)線程處于就緒狀態(tài)实牡,虛擬機(jī)創(chuàng)建方法調(diào)用棧和程序計(jì)數(shù)器斋荞。此時(shí)線程也并沒(méi)有運(yùn)行荞雏,是否運(yùn)行取決于線程調(diào)度器的調(diào)度

2.3 運(yùn)行:獲得cpu資源,并執(zhí)行線程執(zhí)行體run方法平酿。

2.4 阻塞:

搶占式策略:以線程可占時(shí)間段來(lái)暫用cpu資源凤优,不斷輪切線程進(jìn)行執(zhí)行。

協(xié)作式策略: 只有當(dāng)主動(dòng)調(diào)用線程的sleep或yield方法 才會(huì)放棄占用的資源蜈彼。

被阻塞幾種情況:

1.sleep等方法的調(diào)用筑辨,主動(dòng)放棄資源,此時(shí)線程進(jìn)入阻塞狀態(tài)

2.調(diào)用了阻塞式的IO方法

3.同步監(jiān)聽器被其他線程所持有幸逆。 這個(gè)也是線程安全的集合為什么性能會(huì)差于線程不安全的

4.等待notify

5.調(diào)用suspend掛起棍辕。

2.5:死亡

3.sleep和yield區(qū)別?

都是讓當(dāng)前線程執(zhí)行。不同點(diǎn):sleep 阻塞線程还绘,yield 暫停線程重置為就緒狀態(tài)楚昭。

yield調(diào)用后,cpu很可能再暫停后立馬又運(yùn)行該線程蚕甥。由當(dāng)前就緒狀態(tài)的線程數(shù)和優(yōu)先級(jí)來(lái)決定哪替。

4.同步監(jiān)視器

多線程下,對(duì)可變類進(jìn)行修改容易引起數(shù)據(jù)不安全菇怀,所以通過(guò)同步監(jiān)視器進(jìn)行同步工作凭舶,也就是線程安全。兩種方式爱沟。

1.在執(zhí)行修改共享數(shù)據(jù)得方法體內(nèi) 用synchronized關(guān)鍵字包裹帅霜,并且鎖對(duì)象是可變類得對(duì)象,

2.用synchronized關(guān)鍵字修飾可變類得方法呼伸。當(dāng)前鎖定得對(duì)象也是調(diào)用方法得對(duì)象身冀。

5.線程通信三種方式

5.1 傳統(tǒng)通信方式: synchronized 同步代碼塊和方法 + wait+notify +notifyAll

5.2 Condition控制:Lock 實(shí)例得Condition實(shí)例 +condition.await +?condition.signal +condition.signalAll

5.3 BlockingQueue 阻塞隊(duì)列:put 和 take 隊(duì)列滿,或者隊(duì)列空會(huì)阻塞線程

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末括享,一起剝皮案震驚了整個(gè)濱河市搂根,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌铃辖,老刑警劉巖剩愧,帶你破解...
    沈念sama閱讀 211,817評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異娇斩,居然都是意外死亡仁卷,警方通過(guò)查閱死者的電腦和手機(jī)穴翩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)锦积,“玉大人芒帕,你說(shuō)我怎么就攤上這事》峤椋” “怎么了背蟆?”我有些...
    開封第一講書人閱讀 157,354評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)基矮。 經(jīng)常有香客問(wèn)我淆储,道長(zhǎng),這世上最難降的妖魔是什么家浇? 我笑而不...
    開封第一講書人閱讀 56,498評(píng)論 1 284
  • 正文 為了忘掉前任本砰,我火速辦了婚禮,結(jié)果婚禮上钢悲,老公的妹妹穿的比我還像新娘点额。我一直安慰自己,他們只是感情好莺琳,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,600評(píng)論 6 386
  • 文/花漫 我一把揭開白布还棱。 她就那樣靜靜地躺著,像睡著了一般惭等。 火紅的嫁衣襯著肌膚如雪珍手。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,829評(píng)論 1 290
  • 那天辞做,我揣著相機(jī)與錄音琳要,去河邊找鬼。 笑死秤茅,一個(gè)胖子當(dāng)著我的面吹牛稚补,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播框喳,決...
    沈念sama閱讀 38,979評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼课幕,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了五垮?” 一聲冷哼從身側(cè)響起乍惊,我...
    開封第一講書人閱讀 37,722評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎放仗,沒(méi)想到半個(gè)月后润绎,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,189評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,519評(píng)論 2 327
  • 正文 我和宋清朗相戀三年凡橱,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片亭姥。...
    茶點(diǎn)故事閱讀 38,654評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡稼钩,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出达罗,到底是詐尸還是另有隱情坝撑,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布粮揉,位于F島的核電站巡李,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏扶认。R本人自食惡果不足惜侨拦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,940評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望辐宾。 院中可真熱鬧狱从,春花似錦、人聲如沸叠纹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)誉察。三九已至与涡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間持偏,已是汗流浹背驼卖。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留综液,地道東北人款慨。 一個(gè)月前我還...
    沈念sama閱讀 46,382評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像谬莹,于是被迫代替她去往敵國(guó)和親檩奠。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,543評(píng)論 2 349

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

  • 多線程并發(fā)知識(shí)庫(kù) JAVA線程實(shí)現(xiàn)/創(chuàng)建的四種方式 1.繼承Thread類 Thread類本質(zhì)上是實(shí)現(xiàn)了Runna...
    怪瘦Java閱讀 310評(píng)論 0 1
  • 一在岂、線程和進(jìn)程 (1)進(jìn)程 當(dāng)一個(gè)程序進(jìn)入內(nèi)存,即可變成一個(gè)進(jìn)程蛮寂。進(jìn)程包含三大特性: 獨(dú)立性每個(gè)進(jìn)程都有自己私有獨(dú)...
    撥云見日aaa閱讀 251評(píng)論 0 1
  • 線程對(duì)象是可以產(chǎn)生線程的對(duì)象蔽午。比如在 Java 平臺(tái)中 Thread 對(duì)象 、Runnable 對(duì)象酬蹋。線程及老,是指正...
    Alei_Android閱讀 409評(píng)論 0 0
  • 進(jìn)程和線程 進(jìn)程 所有運(yùn)行中的任務(wù)通常對(duì)應(yīng)一個(gè)進(jìn)程,當(dāng)一個(gè)程序進(jìn)入內(nèi)存運(yùn)行時(shí),即變成一個(gè)進(jìn)程.進(jìn)程是處于運(yùn)行過(guò)程中...
    勝浩_ae28閱讀 5,089評(píng)論 0 23
  • ??一個(gè)任務(wù)通常就是一個(gè)程序,每個(gè)運(yùn)行中的程序就是一個(gè)進(jìn)程范抓。當(dāng)一個(gè)程序運(yùn)行時(shí)骄恶,內(nèi)部可能包含了多個(gè)順序執(zhí)行流,每個(gè)順...
    OmaiMoon閱讀 1,663評(píng)論 0 12