AI Academy
促銷
CodeGym University
學習
課程
任務
問卷 & 測驗
遊戲
說明
行程
社群
用戶
論壇
聊天
文章
成功故事
動態
評價
訂閱
淺色主題
課程
評論
關於我們
開始
開始學習
立即開始學習
My Progress
Courses
任務地圖
課程
Java
Java Multithreading
等級 7
您已達到 27 級
Java 多執行緒
等級 7,
課程 0
27級
循環(中斷和返回、繼續、標籤)
Java 多執行緒
等級 7,
課程 1
“嗨,阿米戈!” “今天我會告訴你一些在使用循環時很方便的事情。” “第一個是關鍵字break。如果你在循環體中使用這個命令,那麼循環將在命令執行時立即終止。這是一個例子:” 例子 輸出: for (int i = 0; i < 10; i++)
練習使用 break 和 continue
Java 多執行緒
等級 7,
課程 2
“嗨,阿米戈!”
死鎖及其原因
Java 多執行緒
等級 7,
課程 3
“嗨,阿米戈!” “今天我要告訴你什麼是死鎖。” “嘿,你已經和我說過類似的事情了。” “是的,我做到了。但今天我們將更詳細地考慮這個話題。” “在最簡單的情況下,死鎖涉及兩個線程和兩個互斥對象。互鎖發生在:” A)每個線程都需要獲取兩個互斥量。 B) 第一個線程已經獲取了第一個互斥鎖,正在等待第二個互斥鎖被釋放。 C) 第二個線程獲得了第二個互斥體,正在等待第一個互斥體被釋放。 “這裡有些例子: 例子 public class Student
練習編寫自己的死鎖
Java 多執行緒
等級 7,
課程 4
“嗨,阿米戈!”
避免死鎖的策略
Java 多執行緒
等級 7,
課程 5
“嗨,阿米戈!” “我想告訴你一些避免死鎖的策略。” “最好的策略是一個深思熟慮的架構和一組規則來管理你何時以及以什麼順序可以使用鎖(獲取互斥量)。解決這個問題的經典方法是開發一個鎖層次結構並建立某些鎖永遠不能被使用的規則在已經獲得某些其他鎖的狀態下獲得。” “比如,有時候鎖是分級別的,要求一個線程按照從高級別到低級別的順序去獲取鎖(但是反方向獲取鎖是不允許的)。另外,獲取多個同級別的鎖也是不可以的允許。” “例如,在前面的騎士示例中,我們可以為每個騎士添加一個唯一編號 (i
練習修復死鎖
Java 多執行緒
等級 7,
課程 6
“嗨,阿米戈!”
“wait-notify-notifyAll”策略
Java 多執行緒
等級 7,
課程 7
“嗨,阿米戈!” “我想和你深入探討 wait-notify。wait-notify 方法為線程交互提供了一種方便的機制。它們還可以用於構建複雜的線程交互高級機制。” “我將從一個小例子開始。假設我們有一個服務器程序,必須執行用戶通過網站創建的各種任務。用戶可以在不同時間添加各種任務。任務是資源密集型的,但我們服務器的 8 -核心處理器可以應付。我們應該如何在服務器上執行任務?” “首先,我們將創建一組工作線程,與處理器內核的數量一樣多。每個線程都能夠在自己的內核上運行:線程
一些細微差別
Java 多執行緒
等級 7,
課程 8
“嗨,阿米戈!” “還有更多細節。我們稱之為實用建議。” “假設你有一個等待某事並進入睡眠狀態直到滿足條件的方法。” 如果集合為空,那麼我們等待 public synchronized Runnable getJob()
練習“wait-notify-notifyAll”
Java 多執行緒
等級 7,
課程 9
“嗨,阿米戈!”
有關同步和多線程的其他詳細信息
Java 多執行緒
等級 7,
課程 10
“嗨,阿米戈!” “有一個很大的話題——Java 內存模型。基本上,您還不必了解它,但了解它會很有幫助。” “為了消除所有潛在的問題,Java 改變了它的內存管理機制。現在內存不再簡單地分為線程的本地緩存和全局內存——這種機制甚至更好。” “而且更複雜!” “是的,更好,更複雜。就像飛機。坐飛機比走路好,但更複雜。我會盡量簡單地解釋新情況。” “這就是他們想出的。一種用於同步本地線程內存的機制,稱為‘happens-before’,被添加到代碼中。發明了幾個規則/條件。當滿足
學習谷歌。(如何使用掩碼獲取文件列表)
Java 多執行緒
等級 7,
課程 11
“嗨,阿米戈!” “讓我們繼續學習如何使用谷歌搜索。” “這裡有一些練習:” 網絡搜索練習: 1個 goto 語句有什麼不好? 2個 Java中的保留字是什麼? 3個 如果我在同步塊之外調用 wait 會發生什麼? 4個 什麼是“先發生”關係? 5個 BlockingQueue 接口的用途和方法? 6個 如何從控制台編譯 java 文件? 7 如何從控制台運行 java 文件? 8個 如何從控制台啟動包含多個編譯文件的程序? 9 如何創建包含子目錄的目錄,例如 doc/rel
顯示更多
1
2
Please enable JavaScript to continue using this application.