促銷活動
CodeGym University
學習
課程
任務
問卷及小測驗
遊戲
幫助
學習提醒時程表
社群
使用者
論壇
聊天
文章
成功故事
活動
評論
訂閱
亮色主題
課堂
評論
關於我們
開始
開始學習
現在就開始學習
探索地圖
課堂
所有探索
所有等級
newFixedThreadPool 方法
Module 2: Java Nkyem
等級 14,
課堂 2
Executors類的newFixedThreadPool方法創建了一個固定線程數的executorService 。與newSingleThreadExecutor方法不同,我們指定池中需要多少個線程。在引擎蓋下,調用以下代碼: new ThreadPoolExecutor(nThreads, nThreads,
newCachedThreadPool 方法
Module 2: Java Nkyem
等級 14,
課堂 3
另一種類型的線程池是“緩存的”。這樣的線程池和固定線程池一樣常用。 顧名思義,這種線程池就是緩存線程。它使未使用的線程在有限的時間內保持活動狀態,以便重用這些線程來執行新任務。當我們有一些合理的輕量級工作時,這樣的線程池是最好的。 “一些合理的數量”的含義相當廣泛,但你應該知道,這樣的池並不適合每一個任務數量。例如,假設我們要創建一百萬個任務。即使每個都花費很少的時間,我們仍然會使用不合理的資源量並降低性能。當執行時間不可預測時,例如 I/O 任務,我們也應該避免使用此類池。
newWorkStealingPool 方法
Module 2: Java Nkyem
等級 14,
課堂 4
讓我們弄清楚newWorkStealingPool方法,它為我們準備了一個ExecutorService 。 這個線程池很特別。它的行為是基於“竊取”工作的想法。 任務在處理器之間排隊和分配。但是如果一個處理器很忙,那麼另一個空閒的處理器可以從它那裡竊取一個任務並執行它。這種格式是在 Java 中引入的,目的是減少多線程應用程序中的衝突。它建立在fork/join框架之上。 分叉/加入 在fork/join框架中,任務被遞歸分解,即分解為子任務。然後將子任務單獨執行,將子任務
newScheduledThreadPool 方法
Module 2: Java Nkyem
等級 14,
課堂 5
另一種類型的任務池是計劃任務池。從名稱來看,我們可以假設我們使用此類型來安排何時應啟動特定任務。 當我們有一個任務要在一段時間後啟動一個活動,或者我們想要安排一個重複性任務時,這種類型的服務很有用。 要使用一個,我們調用Executors.newScheduledThreadPool(1)。 稍後我們將討論參數。但現在,我們需要知道的是,當調用此方法時,我們將獲得一個ScheduledExecutorService對象。 ScheduledExecutorService是一個
ThreadLocal,ThreadLocalRandom
Module 2: Java Nkyem
等級 14,
課堂 6
在本課中,我們將大體討論使用java.lang.ThreadLocal<>類以及如何在多線程環境中使用它。 ThreadLocal類用於存儲變量。這個類的一個顯著特徵是它為每個使用它的線程保留一個單獨的獨立值副本。 深入研究類的操作,我們可以想像一個映射,將線程映射到值,當前線程需要使用時從中取合適的值。 ThreadLocal類構造器 構造器 行動 線程本地() 在 Java 中創建一個空變量 方法 方法 行動 得到() 返回當前線程局部變量的值 放() 為當前線程設置局部
來自教授的有用鏈接 — 27
Module 2: Java Nkyem
等級 14,
課堂 7
“嗯,你好,阿米戈!我希望你今晚沒有任何宏偉的計劃,因為我已經找到了一些關於多線程的合理材料供你欣賞。 更好的結合:Java 和 Thread 類。 第一部分 — 執行線程。多線程從一開始就內置在 Java 中。讓我們首先回顧一下線程從何而來以及它們是如何組織的。 第 2 部分 — 同步。本文致力於線程間同步的基本手段。我們將探索監視器、鎖和同步。 第 3 部分 — 互動。線程如何交互的細節概述。我們將探討線程交互時可能出現的問題,並討論如何避免這些問題。 第 4 部分 —
嵌套類
Module 2: Java Nkyem
等級 15,
課堂 0
“嗨,阿米戈!” “嗨,艾莉!” “今天我們有一個很有意思的話題,今天我要給大家講講嵌套類。” “如果一個類聲明在另一個類內部,那麼它就是一個嵌套類。非靜態嵌套類稱為內部類。” “內部類的對象嵌套在外部類的對像中,因此可以訪問外部類的變量。” 例子 public class Car
靜態嵌套類
Module 2: Java Nkyem
等級 15,
課堂 1
“因此,第二個主題是靜態嵌套類。請記住,非靜態嵌套類稱為內部類。 “讓我們圍繞嵌套類聲明上下文中靜態這個詞的含義進行思考。你怎麼看?” “如果一個變量被聲明為靜態的,那麼該變量只存在一個副本。那麼,如果一個嵌套類是靜態的,那麼是否意味著你只能創建該類的一個對象?” “不要讓static這個詞在這裡混淆了你。確實,如果一個變量聲明為static,那麼該變量只有一個副本。但是靜態嵌套類在這方面更像是一個靜態方法。”類聲明前的單詞 static 表示該類不存儲對其外部類對象的引用。
匿名內部類和示例
Module 2: Java Nkyem
等級 15,
課堂 2
“嗨,阿米戈!” “但我們已經打過招呼了,艾莉!” “餵,你別跟你阿姨吵架,在31世紀,半個小時以上沒見人,再打聲招呼是習慣性的,所以你別給我態度!” “總之,又到了另一個有趣的話題了:機器人繁殖!” “噢噢。” “開玩笑的,新話題是匿名內部類。” “在 Java 中,有時會出現需要一個類繼承多個類的情況。由於 Java 不支持多重繼承,他們使用內部類解決了這個問題:在我們的類中,我們聲明一個內部類並使它繼承了我們需要它繼承的任何類。這是一個例子:“ 繼承 Thread 類的
JDK中各類類的例子
Module 2: Java Nkyem
等級 15,
課堂 3
內部類的例子 AbstractList類有一個Itr內部類。它是Iterator接口的實現,可以逐個獲取集合的元素: private class Itr implements Iterator {
來自教授的有用鏈接 — 23
Module 2: Java Nkyem
等級 15,
課堂 4
“嗨,阿米戈!你應對新主題和任務的速度如此之快。但我今天為你準備了很多很好的讀物。我認為你會再次正確檢查嵌套類而受益。 嵌套內部類 為什麼要在另一個類中創建類?好吧,例如,您可能想分離出一些與另一個實體有著千絲萬縷聯繫的實體,以維護程序的邏輯。難的?沒什麼好怕的。我們將在本文中通過示例詳細考慮所有內容。 靜態嵌套類 靜態嵌套類與其他類型的嵌套類有何不同?我們將繼續探索嵌套類,並在本實踐課中了解一些細微差別。 本地方法中的內部類 局部類是內部類的一個亞種,但它們有幾個特點和區別
序列化。開始。
Module 2: Java Nkyem
等級 16,
課堂 0
“你會記得今天我們研究了將對象保存到文件中並從文件中讀取它們嗎?” “是的,我們剛剛保存到輸出流,從輸入流讀取。” “幹得好,阿米戈。很高興聽到你注意到這些細節。你能完成代碼以便它保存到文件並從文件中讀取嗎?” “完成什麼?!聲明一個 FileInputStream 和 FileOutputStream 並將它們傳遞給保存和加載方法。這裡沒有什麼可混淆的。超級簡單。” “我為你感到高興。現在來一個新話題:連載。” 序列化與我們剛才所做的幾乎相同,但更酷並且直接內置到 Java
顯示更多
1
...
19
20
21
22
23
...
35
Please enable JavaScript to continue using this application.