亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java編程思想中關于并發(fā)的總結

 更新時間:2019年09月14日 14:37:21   作者:mihasha  
在本文中小編給大家整理的是關于Java編程思想中關于并發(fā)的總結以及相關實例內容,需要的朋友們參考下。

知識點摘抄

1、用并發(fā)解決的問題大體上可以分為“速度”和“設計可管理性”兩種。

2、并發(fā)通常是提高運行在單處理器上的程序的性能。

這聽起來有些違背直覺。如果你仔細考慮一下就會發(fā)現(xiàn),在單處理器上運行的并發(fā)程序開銷確實應該比該程序的所有部分都順序執(zhí)行的開銷大,因為其中增加了所謂上下文切換的代價(從一個任務切換到另一個任務)。

使這個問題變得有些不同的是阻塞。如果程序中的某個任務因為該線程控制之外的某些條件(通常是I/O)而導致不能繼續(xù)執(zhí)行,那么我們就說這個任務或線程阻塞了。如果沒有并發(fā),則整個程序都將停止下來,直至外部條件發(fā)生變化。但是如果使用并發(fā)來編寫

程序,那么當一個任務阻塞時,程序中的其他任務還能繼續(xù)執(zhí)行,因此這個程序可以保持繼續(xù)向前執(zhí)行。事實上,從性能的角度看,如果沒有任務會阻塞,那么在單處理器機器上使用并發(fā)就沒有任何意義。

3、實現(xiàn)并發(fā)最直接的方式是在操作系統(tǒng)級別使用進程。進程是運行在它自己的地址空間內的自包容的程序。

4、操作系統(tǒng)通常會將進程互相隔離開,因此他們不會彼此干涉,這使得用進程編程相對容易一些。與此相反的是,像Java所使用的這種并發(fā)系統(tǒng)會共享諸如內存和I/O這樣的資源,因此編寫多線程程序最基本的困難在于在協(xié)調不同線程驅動的任務之間的對這些資

源的使用,以使得這些資源不會同時被多個任務訪問。

5、Java的線程機制是搶占式的,這表示調度機制會周期性的中斷線程,將上下文切換到另一個線程,從而為每個線程都提供時間片,使得每個線程都會分配到數(shù)量合理的的時間去驅動它的任務。

6、一個線程就是在進程中的一個單一的順序控制流,因此,單個進程可以擁有多個并發(fā)執(zhí)行的任務。

知識點擴展

發(fā)布:一個對象是使它能夠被當前范圍之外的代碼所引用:

常見形式:將對象的的引用存儲到公共靜態(tài)域;非私有方法中返回引用;發(fā)布內部類實例,包含引用。

逃逸:在對象尚未準備好時就將其發(fā)布。

不要讓this引用在構造函數(shù)中逸出。例,在構造函數(shù)中啟動線程,線程會包含對象的引用。

同步容器:對容器的所有狀態(tài)進行穿行訪問,Vector、Hashtable,Cllections.synchronizedMap|List

并發(fā)容器:ConcurrentHashMap,CopyOnWriteArrayList,ConcurrentLinkedQueue、BlockingQueue

list 隨機訪問特性的優(yōu)勢。

Blocking 增加了可阻塞的get set操作

ConcurrentHashMap:分離鎖,為并發(fā)訪問帶來的高的吞吐量,同時幾乎沒有損失單個線程的訪問性能。返回弱一致性的迭代器。

迭代器的弱一致性,在迭代器生成以后會檢測容器的修改變化。

并發(fā)容器 size(), isEmpty() 弱化,返回近似結果。

CopyOnWriteArrayList:每次修改容器時復制,適用迭代需求大于修改需求情況。

生產(chǎn)者消費者模式,運用有界阻塞隊列解耦生產(chǎn)者和消費者的代碼。

Executor任務執(zhí)行框架,實現(xiàn)了生產(chǎn)者消費者模式。

SynchronousQueue:put等待消費者可用,take等待生產(chǎn)者可用,適用于消費者充足的情景。

以上就是本次介紹的全部知識點內容,感謝大家的學習和對腳本之家的支持。

相關文章

  • Spring 中使用Quartz實現(xiàn)任務調度

    Spring 中使用Quartz實現(xiàn)任務調度

    這篇文章主要介紹了Spring 中使用Quartz實現(xiàn)任務調度,Spring中使用Quartz 有兩種方式,感興趣的小伙伴們可以參考一下。
    2017-02-02
  • checkpoint 機制具體實現(xiàn)示例詳解

    checkpoint 機制具體實現(xiàn)示例詳解

    這篇文章主要為大家介紹了checkpoint 機制具體實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • Java微服務之Feign遠程調用方式

    Java微服務之Feign遠程調用方式

    這篇文章主要介紹了Java微服務之Feign遠程調用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • 淺析Spring Boot單體應用熔斷技術的使用

    淺析Spring Boot單體應用熔斷技術的使用

    這篇文章主要介紹了淺析Spring Boot單體應用熔斷技術的使用,幫助大家更好的理解和使用spirngboot框架,感興趣的朋友可以了解下
    2021-01-01
  • Spring?Boot+RabbitMQ?通過fanout模式實現(xiàn)消息接收功能(支持消費者多實例部署)

    Spring?Boot+RabbitMQ?通過fanout模式實現(xiàn)消息接收功能(支持消費者多實例部署)

    這篇文章主要介紹了Spring?Boot+RabbitMQ?通過fanout模式實現(xiàn)消息接收(支持消費者多實例部署),本文通過案例場景分析給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • Java多線程之線程的創(chuàng)建

    Java多線程之線程的創(chuàng)建

    這篇文章主要介紹了Java多線程之線程的創(chuàng)建,文中有非常詳細的代碼示例,對正在學習java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • Java對象傳遞與返回的細節(jié)問題詳析

    Java對象傳遞與返回的細節(jié)問題詳析

    我們知道這是一個核心概念,在Java中總是按值傳遞而不是按引用傳遞,下面這篇文章主要給大家介紹了關于Java對象傳遞與返回的細節(jié)問題的相關資料,需要的朋友可以參考下
    2022-11-11
  • SpringBoot中配置AOP詳解

    SpringBoot中配置AOP詳解

    這篇文章主要介紹了SpringBoot中配置AOP詳解,Spring Boot 在Spring 的基礎上對AOP的配置提供了自動化配置解決方案spring-boot-starter-aop,使開發(fā)者能夠更加便捷地在Spring Boot項目中使用AOP,需要的朋友可以參考下
    2024-01-01
  • 查看jdk(java開發(fā)工具包)安裝路徑的兩種方法

    查看jdk(java開發(fā)工具包)安裝路徑的兩種方法

    若已經(jīng)安裝好了jdk(java開發(fā)工具包),也配置了環(huán)境變量,事后卻忘了安裝路徑在哪,如何查看jdk安裝路徑?本文給大家介紹了兩種查看jdk(java開發(fā)工具包)安裝路徑的方法,需要的朋友可以參考下
    2023-12-12
  • SpringBoot配置主從數(shù)據(jù)庫實現(xiàn)讀寫分離

    SpringBoot配置主從數(shù)據(jù)庫實現(xiàn)讀寫分離

    現(xiàn)在的 Web 應用大都是讀多寫少,本文主要介紹了SpringBoot配置主從數(shù)據(jù)庫實現(xiàn)讀寫分離,具有一定的參考價值,感興趣的可以了解一下
    2023-11-11

最新評論