java NIO和Concurrent包的一些知識點
1. NIO ByteBuffer快取 ByteBuffer.allocate(); put() 寫資料 get() 讀資料 limit() 得到limit position() 得到position capicity() 得到capicity remaining() limit-position hasRemaining() limit-position>0?true:false rewind()將position置為0 reset()將position重置為 mark()上次的位置 mark() clear()清空緩衝區,並不是真正的緩衝區,修改buffer的相應的引數 Channel通道 2.java.util.concurrent 1.BlockingQuene (ArrayListBlockingQueue,LinkedBlockingQueue)阻塞佇列 存放執行緒處理的資料 2.ConcurrentMap 鎖的範圍更加小不是整個map 而是部分 引入了讀寫鎖的機制 3.CountDownLatch 閉鎖 。是concurrent提供的包,可以協調執行緒執行的過程, 實現協調某個執行緒阻塞知道其他若干執行緒達到一定條件才放開阻塞執行的效果 使用 等待時間呼叫 CountDownLatch.await(), 其他先要完成的執行緒呼叫 CountDownLatch.countDown() 4.CyclicBarrier 柵欄 可以實現多個併發的執行緒在執行過程中,在某一個節點進行阻塞等待,直到所有的執行緒 都到達指定的位置後,才一起發開阻塞繼續執行 建構函式初始化要等待執行緒的個數,然後呼叫CyclicBarrier.await() 5.Exchanger 交換機 可以實現連個執行緒交換物件,先到的執行緒會出現阻塞,直到兩個執行緒到達交換機後, 互相交換物件,各自繼續執行 6.Semaphore 訊號量 建構函式Semaphore(int) Semaphore(int,boolean) 不公平策略 主要函式 acquire(); 後的訊號量,無則阻塞,release()釋放訊號訊號量 7.ExecuteService 執行緒池 Executors.newFixedThreadPool() Executors.newCachedThreadpool() Executors.newSingletonThreadPool() Executors.newScheduledThreadPool() 執行緒池 1.ExecutorService 提交執行緒的方法 execute() 提交執行緒 沒有返回值 submit(Runnable) 提交執行緒,返回Future 可以透過Future.get()得到該執行緒的狀態, 但是如果該執行緒未執行完成,那麼該方法阻塞 submit(Callable) 同上面類似,但是執行緒可以帶有返回值 invokeAny(.....),隨機選擇執行緒執行一個 invokeAll(),自動執行所有的執行緒 關閉執行緒池:ExecutorService.shutdown();該方法不再接受執行緒池,等待所有執行緒 執行完畢後,執行緒池結束。 ExecutorService.shutdown();立即關閉,退出任務,正在執行的執行緒可能會出錯。 2.ReadWriteLock 讀寫鎖 讀鎖可以共享,寫鎖互斥 讀鎖 readLock().lock(); 寫鎖 writeLock().lock();
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31506529/viewspace-2200356/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- day1 java concurrent包一些知識點Java
- Java併發---concurrent包Java
- java中的介面一些知識點———— 程式碼Java
- 從 BIO、NIO 到 Netty【前置知識點】Netty
- mysql的一些知識點MySql
- 一些cookie的知識點Cookie
- PLSQL一些常用的知識點SQL
- Java類和物件知識點總結Java物件
- 關於Java IO與NIO知識都在這裡Java
- 關於AP的一些知識點
- vue的一些基礎知識點Vue
- java小知識點Java
- jQuery常用的一些知識點總結jQuery
- 關於網頁的一些小知識點網頁
- hadoop的一些知識點 配置步驟Hadoop
- 關於Async、Await的一些知識點AI
- python3 numpy的一些小知識點Python
- 一些關於IO流的知識點
- DIM中的一些知識點(慢更)
- Vue一些知識點總結Vue
- 總結的Java知識點集合Java
- Core Java 的知識點總結Java
- Java 知識點總結Java
- java知識點-高階Java
- 【JAVA】- 知識點小結Java
- java 重寫知識點Java
- java 多型知識點Java多型
- Java 反射【前置知識點】Java反射
- java基礎知識點Java
- Java常見知識點彙總(⑫)——==和equals的區別Java
- java.util.concurrent 併發包使用指南Java
- Java併發工具類:深入理解Concurrent包Java
- Java併發相關知識點梳理和研究Java
- 一些有點奇怪的知識(持續更新)
- Sql Server資料庫的一些知識點定義和總結SQLServer資料庫
- var、let和const的知識點
- 【Java】容器相關知識點Java
- 2018.03.12、Android知識點-Java篇AndroidJava