Java程式設計思想AttemptLocking執行結果和預期不一樣(使用顯示的Lock物件)
平臺: Windows7 32bit
JDK版本: 1.5.0_22,1.8.0_121
實測結果為:
tryLock(): true
tryLock(2, TimeUnit.SECONDS): true
tryLock(): true
tryLock(2, TimeUnit.SECONDS): true
acquired
和書中給的例子不一樣,從結果上看是main執行緒中Thread.yield()方法,並沒有給後臺執行緒執行機會,沒有獲得競爭鎖
將Thread.yield()方法替換為TimeUnit.MILLISECONDS.sleep(1);後即可實現預期效果
tryLock(): true
tryLock(2, TimeUnit.SECONDS): true
acquired
tryLock(): false
tryLock(2, TimeUnit.SECONDS): false
相關推薦
Java程式設計思想AttemptLocking執行結果和預期不一樣(使用顯示的Lock物件)
平臺: Windows7 32bit JDK版本: 1.5.0_22,1.8.0_121 實測結果為: tryLock(): true tryLock(2, TimeUnit.SECONDS): true tryLock(): true tryLock(2, TimeUnit.SEC
Java程式設計思想----控制執行流程
1,if-else結構 if-else結構我們可以將其理解為是一種條件判斷語句,當滿足其中一個分支結構的boolean判斷條件的時候就執行這個分支的語句,但不再執行剩下分支的條件哪怕是滿足條件的時候,所以我們在使用if-else結構的時候都將判斷域切分成幾個互不相交的集合來構建相應的分支結構。
60 JAVA程式設計思想——多執行緒
60.JAVA程式設計思想——多執行緒 利用物件,可將一個程式分割成相互獨立的區域。我們通常也需要將一個程式轉換成多個獨立執行的子任務。象這樣的每個子任務都叫作一個“執行緒”(Thread)。編寫程式時,可將每個執行緒都想象成獨立執行,而且都有自己的專用CPU。一些基礎機制實際會為我們自動分割CPU
Java程式設計思想ch5 初始化和清理
5.1 用構造器初始化 new 類名() 將建立和初始化,綁在一起。 5.2 方法過載 5.4 this關鍵字 class Banana{void peel(int i)}{} public class BananaPeel{
《java程式設計思想》第四版 第2 章 一切都是物件 2 . 3 絕對不要清除物件
在大多數程式設計語言中,變數的“存在時間”(Lifetime)一直是程式設計師需要著重考慮的問題。變數應持 續多長的時間?如果想清除它,那麼何時進行?在變數存在時間上糾纏不清會造成大量的程式錯誤。在下面 的小節裡,將闡示Java 如何幫助我們完成所有清除工作
《Java程式設計思想第四版》筆記---21章(1) 併發
執行緒是程序中一個任務控制流序列,由於程序的建立和銷燬需要銷燬大量的資源,而多個執行緒之間可以共享程序資料,因此多執行緒是併發程式設計的基礎。 多核心CPU可以真正實現多個任務並行執行,單核心CPU程式其實不是真正的並行執行,而是通過時間片切換來執行,由於時間片切換頻繁,使
Java程式設計思想之讀書筆記系列九 --- 第十一章 --- 持有物件
基本的容器類:List, Set, Queue和MapJava容器類都可以自動地調整自己的尺寸可以使用註解來抑制警告資訊:註解以“@”開頭,可以接收引數,比如 @SuppressWarnings("unchecked")表示只有有關“不受檢查的異常”的警告資訊應該被抑制容器類的尖括號括起來的是引數型別,可以有
安卓studio開發遇到的坑之app_name 和apk執行結果的名稱不一樣
今天遇到一個坑: 開發app的時候 設定了application中的label屬性 比如說”啊啊”(@string=app_name) string中設定 app_name=”“啊啊”” 但是真機
Java 8新特性之 並行和並行數組(八惡人-8)
都是 class chm 請求 external syntax 匹配 main jvm Jody Domingre 多莫歌·喬迪 “How you doing, dummy?” 你還好嗎,傻瓜 一、基本介紹 Java8不僅增加了Stream,而且還增加了para
Linux下,Java圖形介面程式中文顯示不正常(顯示為方格)問題解決
RedHat或其它Linux系統下中文顯示為方格,原因是JRE環境中中文字型設定異常。 1.首先找到JRE所在的目錄,如在RedHat Enterprise 6中的目錄為:/usr/lib/jvm/java-1.6.0/jre 2.將windows中文字型simsun.ttf或simsun.ttc拷
Java程式設計思想學習(四)----第四章:控制執行流程
在Java中,涉及的關鍵字包括if-else、while、do-while、for、return、break 以及選擇語句switch。然而,Java並不支援goto語句(該語句引起許多反對意見,但它仍是解決某些特殊問題的最便利的方法)。在Java中,仍然可以進行類似goto那樣的跳轉,但比起典型的got
47 java程式設計思想——建立視窗和程式片 AWT
47.java程式設計思想——建立視窗和程式片 AWT 在Java 1.0 中,圖形使用者介面(GUI)庫最初的設計目標是讓程式設計師構建一個通用的GUI,使其在所有平臺上都能正常顯示。 但遺憾的是,這個目標並未達到。事實上,Java 1.0 版的“抽象Windows 工具包”(AWT)產生的是
java程式設計思想之控制執行流程
java 使用了c的所有流程控制語句,涉及的關鍵字包括 if-else、while、do - while 、for 、 return 、break以及選擇語句switch。 1、true和false 所有條件語句都利用條件表示式的真或假來決定執行路徑 2、 if - elseif -
46 java程式設計思想——傳遞和返回物件 只讀類
46.java程式設計思想——傳遞和返回物件 只讀類 儘管在一些特定的場合,由clone()產生的本地副本能夠獲得我們希望的結果,但程式設計師(方法的作者)不得不親自禁止別名處理的副作用。假如想製作一個庫,令其具有常規用途,但卻不能擔保它肯定能在正確的類中得以克隆,這時又該怎麼辦呢?更有可能的一種情
《Java程式設計思想》--面向物件和JVM基礎
1.java中的4種訪問制許可權 (1).public 最大訪問控制權限,對所有的類都可見。 (2).protect 同一包可見,不在同一個包的所有子類也可見。 (3).default 包訪問許可權,
java程式設計思想讀書筆記 第十五章 泛型 (匿名內部類和擦除)
1.匿名內部類 泛型還可以應用於內部類以及匿名內部類。下面的例子使用匿名內部類實現了Generator介面: public class Customer { private static long counter = 1; private f
52 java程式設計思想——建立視窗和程式片 程式片限制
52.java程式設計思想——建立視窗和程式片 程式片限制 出於安全緣故,程式片十分受到限制,並且有很多的事我們都不能做。您一般會問:程式片看起來能做什麼,傳聞它又能做什麼:擴充套件瀏覽器中WEB 頁的功能。自從作為一個網上衝浪者,我們從未真正想了解是否一個WEB 頁來自友好的或者不友好的站點,我們
57 java程式設計思想——建立視窗和程式片 可視程式設計和Beans
57.java程式設計思想——建立視窗和程式片 可視程式設計和Beans 我們已看到Java 對建立可重複使用的程式碼片工作而言是多麼的有價值。“最大限度地可重複使用”的程式碼單元擁有類,因為它包含一個緊密結合在一起的單元特性(欄位)和單元動作(方法),它們可以直接經過混合或通過繼承被重複使用。
Java程式設計思想第四版-第四章(控制執行流程 )筆記
第四章 控制執行流程 有一定java基礎的其實這一章節都懂的。。。。主要記一些細節。(斷句,和switch的 用法。) if- else while do-while
java程式設計思想----14,多執行緒
第14章 多執行緒 利用物件,可將一個程式分割成相互獨立的區域。我們通常也需要將一個程式轉換成多個獨立執行的子任務。 象這樣的每個子任務都叫作一個“執行緒”(Thread)。編寫程式時,可將每個執行緒都想象成獨立執行,而且都有自己的專用CPU。一些基礎機制實際會為我們自動分