JAVA-初步認識-第十二章-多線好處與弊端
一.
看著多線程技術很好,為什麽不全都用多線程來解決問題呢?
多線程是有弊端的,在下圖當中真的是在同時執行嗎?
Windows本身就是一個多任務同時執行的操作系統,誰在負責程序的執行,cpu。Cpu在負責內存中的程序運行。它怎麽知道運行的呢?cpu在多個任務間做著快速地切換,特別地快,一眼看過去好像在執行多個程序,實際上一個時間點上只有一個執行路徑在執行。
當運行的程序變多時,每一個程序被cpu處理的頻率就變慢了,它被處理的機率就變低了,最終執行完畢的時間就延長了。
想想看,能不能提高這個效率呢?很簡單,2個cpu就搞定了。2個cpu占主板的空間。多個cpu能達到真正意義上的同時執行。
多線程技術確實能幫助我們解決多個程序需要同時執行的問題。我們學程序是為了解決問題用的,都能解決啥問題?多程序同時執行。但是它有弊端,開多了,效率低。很多線程的話,忙不過來就死機。真正的雙核和四核cpu上,最大的好處在哪?內存。
Cpu的切換是隨機的,依賴於誰呢?時間片。
快速地同時切換,使得人們看到了多線程技術。
JAVA-初步認識-第十二章-多線好處與弊端
相關推薦
JAVA-初步認識-第十二章-多線好處與弊端
提高 有一個 多個 bsp log 運行 spa 時間片 es2017 一. 看著多線程技術很好,為什麽不全都用多線程來解決問題呢? 多線程是有弊端的,在下圖當中真的是在同時執行嗎? Windows本身就是一個多任務同時執行的操作系統,誰在負責程序的執行,cpu。Cpu在
JAVA-初步認識-第十二章-多線程創建方式一繼承
class post 問題解決 創建子類 可能 父類 顯示 sta body 一. 既然是創建線程,那麽線程應該怎麽創建?在沒有學習java之前,這些程序是誰在操作執行的呢?是由我們所在的操作系統來完成的。Windows裏面有個任務管理器,它來管理這些任務,它來創建這些進
JAVA-初步認識-第十四章-多線程-wait和sleep的區別
分享圖片 thread long img wait方法 object 安全 截圖 也會 一. wait和sleep的方法有些類似,我們現在要對其進行描述,區分它們。 wait方法在object類中,而且有兩種形式,分別是wait()和wait(long timeout),我
JAVA-初步認識-第十四章-多線程-停止線程方式-定義標記
凍結 als 大小 span clas thread 結果 gpo http 一. 線程既然開啟了,運行了,凍結又恢復運行了,那什麽時候消亡呢? 怎麽來停止線程呢?不能一直在運行。 線程怎麽停,線程自己最清楚。在Thread類中,提供了stop方法, 本來線程持有一個鎖,
JAVA-初步認識-第十四章-多線程-停止線程方式-interrupt
拋出異常 處理 不下來 停止線程 一個 表現 執行 技術分享 mage 一. 結合上一節繼續講述,不要以為設置了標記線程就能停止,依舊有停不下來的情況。 整個函數就是添加了wait()方法,導致try-catch的加入。 DOS結果顯示,程序沒有停下來,和主線程結束了
JAVA-初步認識-第十二章-JVM中的多線程分析
finalize 不定 調用函數 處理 編譯 出現 bject 自動運行 jvm 一. 我們學java程序學到現在,到底是多線程的,還是單線程的?(現實中多線程是一直存在的,我們只是才開始學習這個概念而已,沒學過不代表不存在。) 虛擬機的啟動本身就依賴了多條線程,為什麽?
JAVA-初步認識-第十二章-面向對象(包的概述)
ont 找不到 選項 windows -s 有一個 程序 post 類名 一. 包的知識點是面向對象最後的知識點。 (都是對類的操作,那java源文件呢?) 什麽是包?包有什麽用? 介紹一下起源,同一個文件夾裏面有兩個.java的源程序。它們裏面各自有一個class De
JAVA-初步認識-第十二章-面向對象(導入import)
ack 發現 代碼 其它 編譯 div 語句 建議 分享 一. 講到現在發現,有包不如沒包,源程序中書寫類名要寫很長(類名的前綴包很多時)。類文件的層次結構太多,包太多,顯得很麻煩。 如果不願意寫這麽長的名字,我們有一些解決辦法。我們可以通過一個關鍵字來做這件事情,讓你能實
JAVA-初步認識-第十二章-面向對象(Jar包)
壓縮 span 輸出 運行 初步 需要 log ont 圖片 一. Java的程序我們已經把它封裝在包裏面了,java的程序很多的情況下,包很多的情況下,我們把它塞成一個文件。這樣顯得更為方便。 這個壓縮工具有什麽好處?可以把多個目錄合成一個文件。 Java中也有一個這樣
JAVA-初步認識-第十二章-Thread類中的方法線程名稱
取名字 在線 初步 read class 創建線程 變化 name 都是 一. 不同的運行,導致over的位置發生了變化。為什麽呢?我們這裏至少有三個線程。三個線程之間來回隨機切換。 接下來我們想知道的問題就是,我們開啟了多個線程,怎麽區分現在正在運行的線程是誰?多個
JAVA-初步認識-第十一章-object類-equals方法
行修改 color 我們 兩個 例子 初步 是我 地方法 成了 一. 接下來介紹一個特殊的對象,學完繼承,多態,將要講到的,之前也接觸過。 之前談論的繼承體系子父類中,一直存在super()調用父類,父類中也有一個super()調用object。現在就是討論object對
201711671103《JAVA程式設計》第十二章多執行緒機制學習筆記
教材學習內容總結 1.執行緒是依附於程序的,程序是分配資源的最小單位,執行緒是比程序更小的執行單位。一個程序可以產生多個執行緒,形成多條執行線索。每條線索,即每個執行緒也有它自身的產生,存在和消亡過程,也是一個動態的概念。 2.JAVA 中的多執行緒機制:多執行緒是指一個應用程式同時存在好幾
JAVA-初步認識-第十章-多態-轉型2
圖解 能夠 技術 變化 images style 現在 數據類型的轉換 創建 一. 之前的舉的例子,Animal a=new Cat(); 當動物的引用指向了貓對象的時候,這時候貓對象具備了兩種形態。要麽是貓的形態,要麽是動物的形態。這時候,貓對象就具備了多態性。當父類指向
JAVA-初步認識-第十章-多態-成員變量
不存在 之前 只有一個 寫法 父類引用 講解 ima ont 覆蓋 一. 下面講述多態出現以後,繼承體系中所涉及的成員的一些特點。 想要討論多態,沒有繼承是不行的。 不寫構造函數,是因為構造函數是固定在靜態中,是子類的實現過程? 成員函數是非靜態的。 接下來就對這個三個進
JAVA-初步認識-第十章-面向對象-接口的應用
bsp 作用 開關 重要 寫入 之前 如果 設置 ava 一. 把接口這個知識,給它深化一下。 再開發的時候,先設計接口,再開發程序,最後考慮擴展功能。 定義應用程序之前,先把規則定義好。我的應用程序當中,就在使用這個規則。規則就是接口,後來的外加設備,就是接口的實現。 接
JAVA-初步認識-第十章-內部類-局部內部類
png 方法 image cnblogs -s 只有一個 外部類 理解 輸出 一. 繼續將之前的例子深化一下。現在要講述的是內部類除了放置在成員上,還能放置在局部上。換句話說,就是哪都能放。 這裏局部位置是指哪兒? 繼續將程序補全,截圖如下: 上面的截圖其實交代了內部
JAVA-初步認識-第十章-對象的初始化過程
兩個 而且 如果 image dos super() 就是 images logs 一. 現在簡單地將內存圖解簡單地串一串,從之前的到現在的全部組合起來講述一下, 編譯運行的結果為9,按照我們之前的認識來看,對象先是默認初始化,然後顯示初始化,最後是構造器初始化,這是從我
第十二章 多態性與抽象類
mil 虛構函數 函數聲明 關聯 抽象類 表示 純虛函數 首部 定義 第十二章 多態與虛函數 一、多態的概念 向不同的對象發送同一個消息,不同的對象在接收時會產生不同的行為 具有不同功能的函數名可以用同一個函數名,以實現用一個函數名調用不同內容的函數 *靜態多態和動態多態(
《java程式設計思想——第十二章(通過異常處理錯誤)》
12.1 概念## 發現錯誤的理想時機是編譯時期,然而,編譯期間並不能找出所有的錯誤,餘下的問題必須在執行時期解決。 12.2 基本異常## 異常是指阻止當前方法或作用域繼續執行的問題。 當丟擲異常後,首先在堆上建立異常物件,當前的執行路徑被終止,並從當前環境中彈
《Java程式設計》第十二章學習總結
201711671111《Java程式設計》第十二章學習總結 Java多執行緒機制 1.程序與執行緒 程式是一段靜態程式碼,是應用軟體執行的藍本。 程序是程式的因此動態執行過程,它對應了從程式碼載入、執行至執行完畢的一個完整過程,這個過程也是程序本身從產生、發展至消亡的過程。