多執行緒下的並發包 這些面試必問的,你都知道嗎?

2021-10-04 19:12:02 字數 2199 閱讀 1142

在jdk的並發包裡提供了幾個非常有用的併發容器和併發工具類,供我們在多執行緒開發中進行使用。

基於以上兩個原因,便有了concurrenthashmap的閃亮登場機會。

hashmap執行緒不安全演示

public

class

concurrenthashmapdemo

}class

addmapdatathread

implements

runnable

}}

假死

異常報錯

hashtable保證的執行緒安全,但是效率低。

public

synchronized v put

(k key, v value)

public

synchronized v get

(object key)

concurrenthashmap仍能保證結果正確,而且提高了效率。

小結:

countdownlatch允許乙個或多個執行緒等待其他執行緒完成操作,再執行自己。

public

countdownlatch

(int count)

// 初始化乙個指定計數器的countdownlatch物件

public

void

await()

throws interruptedexception// 讓當前執行緒等待

public

void

countdown()

// 計數器進行減1

**示例

public

class

countdownlatchdemo

}class

threada

extends

thread

@override

public

void

run(

)catch

(exception e)

system.out.

println

("c");

}}class

threadb

extends

thread

@override

public

void

run(

)}

public

cyclicbarrier

(int parties, runnable barrieraction)

public

intawait()

// 每個執行緒呼叫await方法告訴cyclicbarrier我已經到達了屏障,然後當前執行緒被阻塞

使用場景

public

semaphore

(int permits) permits 表示許可執行緒的數量

public

semaphore

(int permits,

boolean fair) fair 表示公平性,如果這個設為 true 的話,下次執行的執行緒會是等待最久的執行緒

public

void

acquire()

throws interruptedexception 表示獲取許可

public

void

release()

release

() 表示釋放許可

public

exchanger

()

public v exchange

(v x)

Python多執行緒下的 strptime問題

由於python的datetime和time中的 strptime方法不支援多執行緒,執行時會報錯 import datetime import thread import time def f datetime.datetime.strptime 20100101 y m d for in xra...

Python多執行緒下的 strptime問題

由於python的datetime和time中的 strptime方法不支援多執行緒,執行時會報錯 import datetime import thread import time def f datetime.datetime.strptime 20100101 y m d for in xra...

(多執行緒)多執行緒的併發安全

多執行緒併發操作同乙個資源 同步鎖 多執行緒操作的鎖必須唯一 必須搞清楚 哪些 需要同步?那些在操作共享資源的 只要包含非讀的操作,或者根據共享資源進行條件判斷的,就需要同步!同步 塊解決 package com.gc.thread 多執行緒操作共享資源 併發 執行緒安全問題 同步 鎖 相對而言效能...