亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

java語言

Java中同步與并發(fā)的運(yùn)用

時(shí)間:2024-07-31 18:19:43 java語言 我要投稿
  • 相關(guān)推薦

Java中同步與并發(fā)的運(yùn)用

  Java中同步與并發(fā)的運(yùn)用

  1.同步容器類包括兩部分:vector和hashtable

  另一類是同步包裝類,由Collections.synchronizedXXX創(chuàng)建。同步容器對容器的所有狀態(tài)進(jìn)行串行訪問,從而實(shí)現(xiàn)線程安全。

  它們存在如下問題:

  a) 對于符合操作,需要額外的鎖保護(hù)。比如迭代,缺少則添加等條件運(yùn)算。

  b) toString,hashCode,equals都會(huì)間接的調(diào)用迭代,都需要注意并發(fā)。

  2.java5.0中的并發(fā)容器。

  ConcurrentHashMap可以替代同步Map實(shí)現(xiàn)。

  當(dāng)主要為讀操作時(shí),CopyOnWriteArrayList是List的同步實(shí)現(xiàn)。

  同時(shí),增加了Queue和BlockingQueue:ConcurentLinkedQueue:FIFO隊(duì)列。

  PriorityQueue:非并發(fā)的'優(yōu)先級順序隊(duì)列。

  BlockingQueue則增加了可阻塞的插入和獲取。

  a) ConcurentHashMap:不是使用一個(gè)公共鎖,而是分離鎖。任意數(shù)量的讀線程可以并發(fā)訪問map,讀者和寫者也可以并發(fā)訪問Map,并且有限數(shù)量的寫還可以并發(fā)修改Map。但是,size和isEmpty語言被弱化,是估算值。

  b) CopyOnWriteArrayList:迭代器保留一個(gè)底層基礎(chǔ)數(shù)組引用,改引用不會(huì)修改。

  3.Synchronizer

  a) 閉鎖(CountDownLatch)。構(gòu)造函數(shù)參數(shù)為n,通過countDown,n為0后,所有await的線程繼續(xù)執(zhí)行。

  b) FutureTask:計(jì)算由Callable實(shí)現(xiàn),可以攜帶結(jié)果的Runnable。包括:等待,運(yùn)行和完成。

  c) Semaphore:控制能夠同時(shí)訪問的活動(dòng)數(shù)量

  d) CyclicBarrier:類似于閉鎖。閉鎖等待的是事件,關(guān)卡等待的是其他線程。初始n,Runnable r,n個(gè)線程都await(),當(dāng)n個(gè)線程都執(zhí)行完成后到達(dá)關(guān)卡時(shí),r執(zhí)行,關(guān)卡重置,n個(gè)線程繼續(xù)。

 

【Java中同步與并發(fā)的運(yùn)用】相關(guān)文章:

Java并發(fā)編程:深入剖析ThreadLocal09-20

java多線程同步塊實(shí)例講解素材08-28

Java中定義與聲明的區(qū)別05-21

淺談Java中的弱引用10-27

網(wǎng)頁設(shè)計(jì)中色彩的運(yùn)用07-10

網(wǎng)頁設(shè)計(jì)中的文字運(yùn)用07-09

Java編程中異常處理的方法10-02

java中的4個(gè)核心概念07-15

Java中的多態(tài)用法實(shí)例分析10-23

JAVA中STRING的常用方法總結(jié)06-28