摘要:線程線程,是程序執行流的最小單元。由于線程之間的相互制約,致使線程在運行中呈現出間斷性。線程的狀態機線程也有就緒阻塞和運行三種基本狀態。在單個程序中同時運行多個線程完成不同的工作,稱為多線程。可以視為不同線程競爭一把鎖。
進程線程協程 進程
進程是一個實體。每一個進程都有它自己的地址空間,
文本區域(text region)
數據區域(data region)
堆棧(stack region)。
文本區域存儲處理器執行的代碼;數據區域存儲變量和進程執行期間使用的動態分配的內存;堆棧區域存儲著活動過程調用的指令和本地變量。
進程是一個“執行中的程序”。程序是一個沒有生命的實體,只有處理器賦予程序生命時(操作系統執行之),它才能成為一個活動的實體,我們稱其為進程。
線程線程,是程序執行流的最小單元。一個標準的線程
線程ID,
當前指令指針(PC)
寄存器集合
堆棧
線程是進程中的一個實體,是被系統獨立調度和分派的基本單位,線程自己不擁有系統資源,只擁有一點兒在運行中必不可少的資源,但它可與同屬一個 進程的其它線程共享進程所擁有的全部資源。一個線程可以創建和撤消另一個線程,同一進程中的多個線程之間可以并發執行。由于線程之間的相互制約,致使線程 在運行中呈現出間斷性。
線程的狀態機
線程也有就緒、阻塞和運行三種基本狀態。就緒狀態是指線程具備運行的所有條件,邏輯上可以運行,在等待處理機;運行狀態是指線程占有處理機正在運行;阻塞狀態是指線程在等待一個事件(如某個信號量),邏輯上不可執行。每一個程序都至少有一個線程,若程序只有一個線程,那就是程序本身。
線程是程序中一個單一的順序控制流程。進程內一個相對獨立的、可調度的執行單元,是系統獨立調度和分派CPU的基本單位指運行中的程序的調度單位。在單個程序中同時運行多個線程完成不同的工作,稱為多線程。
線程是程序中一個單一的順序控制流程。進程內一個相對獨立的、可調度的執行單元,是系統獨立調度和分派CPU的基本單位指運行中的程序的調度單位。在單個程序中同時運行多個線程完成不同的工作,稱為多線程。
協程協程coroutine和線程一樣共享堆,不共享棧,協程由程序員在協程的代碼里顯示調度,實現用戶態中的切換。因此被認為更輕量,開銷更低。
協程同一時間只能有一個協程運行,golang的goroutine采用的線程的方式,可能存在并行。
進程、線程、協程的關系和區別:
進程擁有自己獨立的堆和棧,既不共享堆,亦不共享棧,進程由操作系統調度。
線程擁有自己獨立的棧和共享的堆,共享堆,不共享棧,線程亦由操作系統調度(標準線程是的)。
協程和線程一樣共享堆,不共享棧,協程由程序員在協程的代碼里顯示調度。
CPU密集型應用
多核的環境下,多線程可以充分利用CPU
IO密集型應用
理論上協程或者NIO的處理方式較佳
JAVA有2種方式實現
繼承java.lang.Thread類
實現java.lang.Runnable接口,并重寫run方法
啟動/暫停線程thread.start()
thread.stop()
互斥使用synchronized關鍵字聲明的方法,會在線程間進行同步。可以視為不同線程競爭一把鎖。當線程運行時加鎖,結束運行或異常退出時釋放
中斷調用thread.interrupt()方法讓線程進入中斷interrupted狀態,可通過調用isInterrupted來確認是否進入中斷狀態
等待/喚醒調用thread.wait()方法讓線程進入等待狀態,進入此狀態的線程可被其他線程的notify()/notifyAll()方法喚醒繼續執行下文,也可被interrupt()進入中斷
如果執行wait時指定了時間。那么當計時器到達指定時間后,如果沒有被notify喚醒,該線程也會被喚醒。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/73023.html
摘要:筆記來源并發編程與高并發解決方案并發基礎綜述多級緩存緩存一致性亂序執行優化內存模型規定抽象結構同步八種操作及規則并發的優勢與風險并發與高并發基本概念基本概念并發同時擁有兩個或者多個線程,如果程序在單核處理器上運行,多個線程將交替地換入或者換 筆記來源:【IMOOC】Java并發編程與高并發解決方案 并發基礎 綜述: CPU多級緩存:緩存一致性、亂序執行優化 Java內存模型:JM...
摘要:線程和進程參考進程和線程的區別和聯系線程線程作為獨立運行和獨立調度的基本單位。由于線程比進程更小,基本上不擁有系統資源,故對它的調度所付出的開銷就會小得多,能更高效的提高系統內多個程序間并發執行的程度。進程進程作為分配資源的基本單位。 線程和進程 參考進程和線程的區別和聯系 線程:線程作為獨立運行和獨立調度的基本單位。由于線程比進程更小,基本上不擁有系統資源,故對它的調度所付出的開銷...
摘要:實戰高并發程序設計推薦豆瓣評分書的質量沒的說,推薦大家好好看一下。推薦,豆瓣評分,人評價本書介紹了在編程中條極具實用價值的經驗規則,這些經驗規則涵蓋了大多數開發人員每天所面臨的問題的解決方案。 很早就想把JavaGuide的書單更新一下了,昨晚加今天早上花了幾個時間對之前的書單進行了分類和補充完善。雖是終極版,但一定還有很多不錯的 Java 書籍我沒有添加進去,會繼續完善下去。希望這篇...
閱讀 3670·2021-09-07 09:59
閱讀 725·2019-08-29 15:12
閱讀 811·2019-08-29 11:14
閱讀 1316·2019-08-26 13:27
閱讀 2670·2019-08-26 10:38
閱讀 3140·2019-08-23 18:07
閱讀 1282·2019-08-23 14:40
閱讀 1932·2019-08-23 12:38