11.1-全棧Java筆記:多線程技術的基本概念

多線程是JAVA語言的重要特性,大量應用于網絡編程、應用于服務器端程序的開發、以及最常見的UI界面底層原理、操作系統底層原理都大量使用了多線程。

我們可以流暢的點擊軟件或者游戲中的各種按鈕,其實,底層就是多線程的應用。UI界面的主線程繪制界面,如果有一個耗時的操作發生則啟動新的線程,完全不影響主線程的工作。當這個線程工作完畢后,再更新到主界面上。

我們可以上百人、上千人、上萬人同時訪問某個網站,其實,網站服務器也是基于多線程的原理。如果沒有多線程,服務器處理速度會極大降低。

多線程應用于計算機的各個方面,但是對于初學者,我們只需掌握基本的概念即可。在入門階段,暫時沒有必要過深去鉆研。

基本概念

程序

程序”(Program)是一個靜態的概念,一般對應于操作系統中一個可執行文件,比如:我們要啟動酷狗聽音樂,則對應酷狗的可執行程序。當我們雙擊酷狗,則加載程序到內存中,開始執行該程序,于是產生了“進程”。

進程

執行中的程序叫做進程(Process),是一個動態的概念?,F代的操作系統都可以同時啟動多個進程。比如:我們在用酷狗聽音樂、也可以使用eclipse寫代碼、也可以同時用瀏覽器查看網頁。

進程具有如下特點:

1)進程是程序的一次動態執行過程,?占用特定的地址空間。

2)每個進程由3部分組成:cpu、data、code。每個進程都是獨立的,保有自己的cpu時間,代碼和數據,即便用同一份程序產生好幾個進程,它們之間還是擁有自己的這3樣東西。??造成的缺點:內存的浪費,cpu的負擔較重。

3)多任務(Multitasking)操作系統à將CPU時間動態地劃分給每個進程,操作系統同時執行多個進程,每個進程獨立運行。以進程的觀點來看,它會以為自己獨占CPU的使用權。

4)進程的查看。

Windows系統: Ctrl+Alt+Del,啟動任務管理器即可查看所有進程

Unix系統: ps or top

線程

一個進程可以產生多個線程。 多個進程可以共享操作系統的某些資源一樣,同一進程的多個線程也可以共享進程的某些資源(比如:代碼、數據),所以線程又被稱為輕量級進程(lightweight process)。

1)一個進程可擁有多個并行的(concurrent)線程

2)一個進程中的多個線程共享相同的內存單元/內存地址空間à可以訪問相同的變量和對象,而且它們從同一堆中分配對象à通信、數據交換、同步操作

3)由于線程間的通信是在同一地址空間上進行的,所以不需要額外的通信機制,這就使得通信更簡便而且信息傳遞的速度也更快。

4)線程的啟動、中斷、消亡,消耗的資源非常少。

線程和進程的區別

1)每個進程都有獨立的代碼和數據空間(進程上下文),進程間的切換會有較大的開銷。

2)線程可以看成時輕量級的進程,同一類線程共享代碼和數據空間,每個線程有獨立的運行棧和程序計數器(PC),線程切換的開銷小。

3)線程和進程最根本的區別在于:進程作為資源分配的單位,線程是調度和執行的單位

4)多進程: 在操作系統中能同時運行多個任務(程序)

5)多線程: 在同一應用程序中有多個順序流同時執行

6)線程是進程的一部分,所以線程有的時候被稱為是輕權進程或者輕量級進程。

7)一個沒有線程的進程是可以被看作單線程的,如果一個進程內擁有多個進程,進程的執行過程不是一條線(線程)的,而是多條線(線程)共同完成的。

8)系統在運行的時候會為每個進程分配不同的內存區域,但是不會為線程分配內存(線程所使用的資源是它所屬的進程的資源),線程組只能共享資源。那就是 說,出了CPU之外(線程在運行的時候要占用CPU資源),計算機內部的軟硬件資源的分配與線程無關,線程只能共享它所屬進程的資源。

進程與程序的區別

程序是一組指令的集合,它是靜態的實體,沒有執行的含義。而進程是一個動態的實體,有自己的生命周期。一般說來,一個進程肯定與一個程序相對應,并且只有一個,但是一個程序可以有多個進程,或者一個進程都沒有。除此之外,進程還有并發性和交往性。簡單地說,進程是程序的一部分,程序運行的時候會產生進程。




「全棧Java筆記」是一部能幫大家從零到一成長為全棧Java工程師系列筆記。筆者江湖人稱 Mr. G,10年Java研發經驗,曾在神州數碼、航天院某所研發中心從事軟件設計及研發工作,從小白逐漸做到工程師、高級工程師、架構師。精通Java平臺軟件開發,精通JAVAEE,熟悉各種流行開發框架。


?筆記包含從淺入深的六大部分:

?A-Java入門階段

?B-數據庫從入門到精通

?C-手刃移動前端和Web前端

?D-J2EE從了解到實戰

?E-Java高級框架精解

?F-Linux和Hadoop?

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,619評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,155評論 3 425
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 177,635評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,539評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,255評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,646評論 1 326
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,655評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,838評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,399評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,146評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,338評論 1 372
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,893評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,565評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,983評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,257評論 1 292
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,059評論 3 397
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,296評論 2 376

推薦閱讀更多精彩內容