線程池 ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, ThreadFactory thre ...
線程池 ThreadPoolExecutor(int corePoolSize,
int maximumPoolSize,
long keepAliveTime,
TimeUnit unit,
BlockingQueue<Runnable> workQueue,
ThreadFactory threadFactory,
RejectedExecutionHandler handler)
1.synchronized
2.volatile
3.Reentrantlock ReentrantReadWriteLock
4.Atomics
5.wait notify notifyAll
6.CountDownLatch
7.CyclicBarrier 迴圈屏障
示例:
class Solver {
* final int N;
* final float[][] data;
* final CyclicBarrier barrier;
*
* class Worker implements Runnable {
* int myRow;
* Worker(int row) { myRow = row; }
* public void run() {
* while (!done()) {
* processRow(myRow);
*
* try {
* barrier.await();
* } catch (InterruptedException ex) {
* return;
* } catch (BrokenBarrierException ex) {
* return;
* }
* }
* }
* }
*
* public Solver(float[][] matrix) {
* data = matrix;
* N = matrix.length;
* Runnable barrierAction =
* new Runnable() { public void run() { mergeRows(...); }};
* barrier = new CyclicBarrier(N, barrierAction);
*
* List<Thread> threads = new ArrayList<Thread>(N);
* for (int i = 0; i < N; i++) {
* Thread thread = new Thread(new Worker(i));
* threads.add(thread);
* thread.start();
* }
*
* // wait until done
* for (Thread thread : threads)
* thread.join();
* }
* }}
9.Semaphone
10.Exchanger 用於兩個線程之間進行數據交換
11 Future FutureTask
12 併發容器 JUC copyOnWrite
13 動態代理
14 反射 (1)獲取對象屬於哪個類 2)獲取類的信息 3)構建對象 4)動態執行方法 Method method = clazz.getDeclaredMethod(“add”,int.class,int.class); method.invoke(this,1,1);
5)動態操作屬性 Filed filed = clazz.getDeclaredFiled(“name”); filed.set(this,”test”);
位元組碼增強 javassist cglib asm bcel
15 網路通信 BIO NIO AIO
16 服務框架原型
1) 客戶端邏輯 a 獲取可用服務地址列表 b 確定要調用服務的目標機器 c 請求信息序列化 d. 發送請求 e 接收結果
2)服務端邏輯 a.啟動埠進行監聽 b.接收請求併進行反序列化處理 c.定位到具體的service methodName和參數 d.通過反射方式進行執行業務邏輯 e.執行結果序列化為二進位寫會給請求發送端
大概流程: 調用發起——》定址路由——》協議適配/序列化 ——》網路傳輸——》反序列化/協議解析——》結果返回給調用方
3)服務框架使用方式 a 三個基礎屬性:interfaceName version group
4) 調用者和提供者進行直連方式進行建立連接,通過引入註冊中心進行服務註冊與發現,出於效率考慮,調用者會進行本地地址緩存一份,發送變更後,註冊中心進行列表最新信息推送,從而更新變化。集群的負責均衡:輪詢 隨機 權重