高級別併發對象(High Level Concurrency Objects)

  1. 高級別併發對象:Lock Objects,Executors,Concurrent collections,Atomic variables,ThreadLocalRandom
  2. LockObjects:Lock lock = new reentrantLock();lock.tryLock()返回true或false,代表是否獲取了對象的鎖;lock.unlock();解除對象鎖。
  3. Executors:Executor Interfaces(Executor、ExecutorService、ScheduledExecutorService),Thread Pools,Fork/join。Executor接口有一個execute(),看起來將一個實現了Runable接口的類放到方法中,等到某個worker thread有時間就執行這個任務。ExecutorService在Executor接口基礎上拓展了submit()方法可以提交實現callable接口的類,返回一個Future類,可以利用該類得到該線程執行任務的返回結果。ScheduledExecutorService可以每隔一段時間執行該任務或者等一段時間執行該任務。
  4. Thread Pools線程池,會首先創建多個線程,利用executor管理這些線程,並將任務直接交給executor。線程池的優勢:設想每來一個http請求就開一個新的線程去執行,那麼請求一多就會很快達到系統的極限,請求再來的時候就直接拒絕相應了,若先建一個線程池,來的請求都會先放到一個隊列中,那麼這些請求始終會得到響應,即使不是立刻得到響應,也會盡快得到響應。而且不使用線程池時,線程的創建銷燬需要資源,但使用線程池就不會有這個問題。Executors. newFixedThreadPool()、newCachedThreadPool()、newSingleThreadExecutor()這幾個方法都能創建一個線程池。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章