(3)linkedblockingqueue
(4)concurrenthashmap
(5)執行緒池
threadlocal x = new threadlocal()
date用來表示時間,calendar用來操作時間 ******dateformat示例date and time pattern
result
「yyyy.mm.dd g 『at』 hh:mm:ss z」
2001.07.04 ad at 12:08:56 pdt
「eee, mmm d, ''yy」
wed, jul 4, '01
「h:mm a」
12:08 pm
「hh 『o』『clock』 a, zzzz」
12 o』clock pm, pacific daylight time
「k:mm a, z」
0:08 pm, pdt
「yyyyy.mmmmm.dd ggg hh:mm aaa」
02001.july.04 ad 12:08 pm
「eee, d mmm yyyy hh:mm:ss z」
wed, 4 jul 2001 12:08:56 -0700
「yymmddhhmmssz」
010704120856-0700
「yyyy-mm-dd』t』hh:mm:ss.sssz」
2001-07-04t12:08:56.235-0700
「yyyy-mm-dd』t』hh:mm:ss.sss***」
2001-07-04t12:08:56.235-07:00
「yyyy-'w』ww-u」
2001-w27-3
timer timer = new timer()
timer.scheduleatfixedrate(要被執行的任務,0,timeunit.seconds.tomillis(2))
括號內引數:任務,延時,頻率
強制關鍵字每次都從主存獲取變數資料,防止指令重排引發錯誤atomic運算元,確保不會因為執行緒問題而引起混亂
常用模式:lock lock =
newreentrantlock();
//括號內寫false,代表非公平鎖;預設不公平;公平為true
tryfinally
lock.
trylock
(1,timeunit.seconds);
lock.
unlock()
;第乙個引數代表大小,第二個是單位
trylock一秒,lock不住就不lock了
常用模式:
lock lock =
newreentrantlock()
; condition condition = lock.
newcondition()
;try
finally
await和signal也是要用在lock和unlock之間
常用模式:
countdownlatch countdownlatch =
newcountdownlatch(10
);countdownlatch.
countdown()
; countdownlatch.
await()
;
只需要countdown即可,不需要結束,執行緒可以繼續做別的事情
await不需要等待時間,隨時使用,join需要確保執行緒已經start
常用模式:
linkedblockingqueue linkedblockingqueue =
newlinkedblockingqueue(50
);linkedblockingqueue.
peek()
;//瞟一眼,拿出引用,如果沒有就返回空
linkedblockingqueue.
offer(""
);//往佇列新增元素,返回布林值,是否新增成功
linkedblockingqueue.
poll()
;//從佇列中拉出乙個元素,為空就返回null
linkedblockingqueue.
put("")
;//往佇列中新增乙個元素,滿了就等待
linkedblockingqueue.
remove()
;//拿出,為空就拋異常
linkedblockingqueue.
take()
;//往佇列中拿出元素,為空就等待
執行緒安全,引數可傳大小
常用模式:
map map =
newconcurrenthashmap()
; map.
computeifabsent()
;//如果存在就修改,內部為雙運算元方法,可以呼叫lambda進行修改
map.
containskey()
; map.
compute()
;
執行緒安全
常用模式:
private executorservice service = executors.
newcachedthreadpool()
; service.
submit
(new
clienthandler
(socket)
)
除了可以建立可變的執行緒池,還可以建立固定大小的
括號新增需要執行的任務
java 多執行緒中常用的鎖
1.synchronized 同步 2.object.wait object.notify 配合synchronized使用 3.readwritelock 讀寫鎖 讀寫 讀非阻塞阻塞寫 阻塞阻塞 注 讀操作次數遠大於寫操作,讀寫鎖優勢最大 4.condition 配合lock使用 類似 objec...
多執行緒三 執行緒中常用的函式
1.sleep 1.1 執行緒睡眠 thread.sleep long millis 方法,使執行緒轉到阻塞狀態。millis引數設定睡眠的時間,以毫秒為單位。當睡眠結束後,就轉為就緒 runnable 狀態。當前執行緒 即呼叫該方法的執行緒 暫停執行一段時間,讓其他執行緒有機會繼續執行,但它並不釋...
Foundation中常用結構體和類總結
foundation中常用結構體 nsrange nspoint cgpoint nssize cgsize nsrect cgrect foundation中常用類 1 nsstring 字串類 不可變 nsmutablestring 可變字串類 字串類子類 2 nsarray 陣列 不可變 有序...