成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

《Java并發(fā)編程實(shí)戰(zhàn)》讀書筆記-第1章 簡介

zhoutk / 2322人閱讀

摘要:線程允許同一個(gè)進(jìn)程中同時(shí)存在多個(gè)程序控制流。線程也被稱為輕量級進(jìn)程?,F(xiàn)代操作系統(tǒng)中,都是以線程為基本的調(diào)度單位,而不是進(jìn)程。

并發(fā)簡史

在早期的計(jì)算機(jī)中不包含操作系統(tǒng),從頭至尾都只執(zhí)行一個(gè)程序,并且這個(gè)程序能訪問計(jì)算機(jī)所有資源。操作系統(tǒng)的出現(xiàn)使得計(jì)算機(jī)每次能運(yùn)行多個(gè)程序,并且不同的程序都在多帶帶的進(jìn)程中運(yùn)行:操作系統(tǒng)為各個(gè)獨(dú)立執(zhí)行的進(jìn)程分配內(nèi)存、文件句柄、安全證書等。不同進(jìn)程之間通過一些粗粒度的通信機(jī)制交換數(shù)據(jù),包括:套接字、信號處理器、共享內(nèi)存、信號量以及文件等。
之所以在計(jì)算機(jī)中加入操作系統(tǒng)來實(shí)現(xiàn)多個(gè)程序同時(shí)執(zhí)行,主要基于以下原因:

資源利用率:在某些情況下,程序如果在等待某個(gè)外部操作執(zhí)行完成的同時(shí),可以運(yùn)行另一個(gè)程序,那無疑將提高資源的利用率。
公平性:通過粗粒度的時(shí)間分片運(yùn)行方式,使得不同的用戶和程序?qū)τ谟?jì)算機(jī)上的資源有著共同的使用權(quán)。
便利性:計(jì)算多個(gè)任務(wù)時(shí),編寫多個(gè)程序,每個(gè)程序執(zhí)行一個(gè)任務(wù)并在必要時(shí)相互通信,比之編寫一個(gè)程序來計(jì)算所有任務(wù)更容易實(shí)現(xiàn)。

這些促使進(jìn)程出現(xiàn)的因素同樣也促使著線程的出現(xiàn)。線程允許同一個(gè)進(jìn)程中同時(shí)存在多個(gè)程序控制流。線程會共享進(jìn)程范圍內(nèi)的資源(內(nèi)存、文件句柄),但每個(gè)線程都有各自的程序計(jì)數(shù)器、棧、局部變量等。一個(gè)程序中的多個(gè)線程也可以同時(shí)被調(diào)度到多個(gè)CPU上運(yùn)行。

線程也被稱為輕量級進(jìn)程。現(xiàn)代操作系統(tǒng)中,都是以線程為基本的調(diào)度單位,而不是進(jìn)程。

線程的優(yōu)勢
發(fā)揮多處理器的強(qiáng)大能力
建模的簡單性
異步事件的簡化處理
響應(yīng)更靈敏的用戶界面
線程帶來的風(fēng)險(xiǎn)

安全性問題
多個(gè)線程同時(shí)訪問和修改相同的變量時(shí),會發(fā)生無法預(yù)料的數(shù)據(jù)變化,導(dǎo)致線程出現(xiàn)錯(cuò)誤

活躍性問題
當(dāng)某個(gè)操作無法繼續(xù)執(zhí)行下去時(shí):死鎖、饑餓、活鎖

性能問題
多線程程序中不僅存在于單線程程序相同的性能問題(服務(wù)時(shí)間過長、響應(yīng)不靈敏、吞吐率過低、資源消耗過高、可伸縮行較低等),而且還存在由于使用線程而引入的其他性能問題:

在多線程程序中,當(dāng)線程調(diào)度器臨時(shí)掛起活躍線程并轉(zhuǎn)而運(yùn)行另一個(gè)線程時(shí),會頻繁的出現(xiàn)上下文切換操作(Context
Switch),這種操作將帶來極大的開銷:保存和恢復(fù)執(zhí)行上下文,丟失局部性,CPU花更多的時(shí)間在線程調(diào)度而不是線程運(yùn)行上。
使用同步機(jī)制操作共享數(shù)據(jù)時(shí),會抑制編譯器優(yōu)化,是內(nèi)存緩存區(qū)中的數(shù)據(jù)無效,以及增加共享內(nèi)存總線的同步流量

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/77892.html

相關(guān)文章

  • Java并發(fā)編程的藝術(shù)】讀書筆記

    摘要:前言并發(fā)編程的目的是讓程序跑的更快,但并不是啟動更多的線程,這個(gè)程序就跑的更快。盡可能降低上下文切換的次數(shù),有助于提高并發(fā)效率。死鎖并發(fā)編程中的另一挑戰(zhàn)是死鎖,會造成系統(tǒng)功能不可用。 前言 并發(fā)編程的目的是讓程序跑的更快,但并不是啟動更多的線程,這個(gè)程序就跑的更快。有以下幾種挑戰(zhàn)。 挑戰(zhàn)及方案 上下文切換 單核CPU上執(zhí)行多線程任務(wù),通過給每個(gè)線程分配CPU時(shí)間片的方式來實(shí)現(xiàn)這個(gè)機(jī)制。...

    馬忠志 評論0 收藏0
  • Java8實(shí)戰(zhàn)》-讀書筆記(用流收集數(shù)據(jù)-01

    摘要:收集器用作高級歸約剛剛的結(jié)論又引出了優(yōu)秀的函數(shù)式設(shè)計(jì)的另一個(gè)好處更易復(fù)合和重用。更具體地說,對流調(diào)用方法將對流中的元素觸發(fā)一個(gè)歸約操作由來參數(shù)化。另一個(gè)常見的返回單個(gè)值的歸約操作是對流中對象的一個(gè)數(shù)值字段求和。 用流收集數(shù)據(jù) 我們在前一章中學(xué)到,流可以用類似于數(shù)據(jù)庫的操作幫助你處理集合。你可以把Java 8的流看作花哨又懶惰的數(shù)據(jù)集迭代器。它們支持兩種類型的操作:中間操作(如 filt...

    EscapedDog 評論0 收藏0
  • 《Spring實(shí)戰(zhàn)讀書筆記——Spring簡介

    摘要:如何降低開發(fā)的復(fù)雜性最小侵入編程通過面向接口和依賴注入實(shí)現(xiàn)松耦合基于編程慣例和切面進(jìn)行聲明式編程通過模板減少樣板式代碼容器在應(yīng)用中,不再由對象自行創(chuàng)建或管理它們之間的依賴關(guān)系容器負(fù)責(zé)創(chuàng)建對象裝配對象配置它們并管理它們的整個(gè)生命周期。 歡迎大家關(guān)注我的微信公眾號,一起探討Java相關(guān)技術(shù) showImg(https://segmentfault.com/img/bVboaBO?w=129...

    CKJOKER 評論0 收藏0
  • Java學(xué)習(xí)路線總結(jié),搬磚工逆襲Java架構(gòu)師(全網(wǎng)最強(qiáng))

    摘要:哪吒社區(qū)技能樹打卡打卡貼函數(shù)式接口簡介領(lǐng)域優(yōu)質(zhì)創(chuàng)作者哪吒公眾號作者架構(gòu)師奮斗者掃描主頁左側(cè)二維碼,加入群聊,一起學(xué)習(xí)一起進(jìn)步歡迎點(diǎn)贊收藏留言前情提要無意間聽到領(lǐng)導(dǎo)們的談話,現(xiàn)在公司的現(xiàn)狀是碼農(nóng)太多,但能獨(dú)立帶隊(duì)的人太少,簡而言之,不缺干 ? 哪吒社區(qū)Java技能樹打卡?【打卡貼 day2...

    Scorpion 評論0 收藏0
  • Java 8 函數(shù)式編程讀書筆記——數(shù)據(jù)并行化

    摘要:限制編寫并行流,存在一些與非并行流不一樣的約定。底層框架并行流在底層沿用的框架,遞歸式的分解問題,然后每段并行執(zhí)行,最終由合并結(jié)果,返回最后的值。 本書第六章的讀書筆記,也是我這個(gè)系列的最后一篇讀書筆記。后面7、8、9章分別講的測試、調(diào)試與重構(gòu)、設(shè)計(jì)和架構(gòu)的原則以及使用Lambda表達(dá)式編寫并發(fā)程序,因?yàn)楣P記不好整理,就不寫了,感興趣的同學(xué)自己買書來看吧。 并行化流操作 關(guān)于并行與并發(fā)...

    leone 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<