
2021年十月,我和父母驅(qū)車去桐廬玩了3天。為什么地點選擇桐廬?首先風(fēng)景優(yōu)美。桐廬為杭州下轄縣,富春江畔,山巒重疊,又有古村坐落于山川之間,可謂...
在之前的例子中,線程執(zhí)行的任務(wù),在Runnable對象中定義,和線程,在Thread對象中定義,兩者之間總是有一種密切的關(guān)聯(lián)。這樣的機制對小型應(yīng)...
到目前為止,本課程一直都專注于底層次的API——從非常早開始就一直是JAVA平臺的組成部分。這些API對于解決一些基本問題是非常足夠的,但是為了...
如果一個對象的狀態(tài)在它構(gòu)建之后就不能被更改,我們就認(rèn)為它是不可更改的對象。對不可更改對象的最大限度的依賴被廣泛認(rèn)為是一種建立簡單、可信賴代碼的好...
線程通常需要協(xié)調(diào)它們的動作。最常見的協(xié)調(diào)方法是被守護的代碼塊。這樣的代碼塊以在代碼塊執(zhí)行之前,對一個總是為真的條件進行輪詢。為了能正確完成它,需...
一個并發(fā)線程能夠在一定時間內(nèi)執(zhí)行完成的能力被成為活性。這一節(jié)介紹了最常見的活性問題,死鎖,并介紹了另外兩種活性問題——饑餓和活鎖。 死鎖 死鎖描...
在編程中,一個原子操作是指能一次發(fā)生的動作。一次原子操作不能被中途打斷:它要么完全執(zhí)行,要么根本不執(zhí)行。原子操作的副作用必須在它結(jié)束之后,才能看...
同步是在被稱為內(nèi)部鎖或者管鎖的內(nèi)部實體上建立起來的。內(nèi)部鎖在同步的兩個方面都扮演了重要的角色:加強對一個對象狀態(tài)互斥的進入,以及建立對可見性很重...
JAVA編程語言提供了兩種基本的同步做法:同步方法和同步語句。其中更為復(fù)雜的同步語句會在之后的章節(jié)講。這個章節(jié)是關(guān)于同步方法的。 想要讓一個方法...