原创 鏈式編程+流式計算 一個小題目

package main.test; import java.util.Arrays; import java.util.List; /** * @Auther: wdq * @Date: 2020/4/21 15:44 * @

原创 ExecutorService線程池+七大參數源碼分析+自定義線程池

例子: 10年前單核CPU電腦,假的多線程,像馬戲團小丑玩多個球,CPU需要來回切換。 現在是多核電腦,多個線程各自跑在獨立的CPU上,不用切換效率高。 線程池的優勢: 線程池做的工作只要是控制運行的線程數量,處理過程中將任務放入隊列

原创 list線程不安全(舉例說明+三種解決)

package main.test; import java.util.ArrayList; import java.util.List; /** * @Auther: wdq * @Date: 2020/4/20 08:57

原创 JUC的輔助類--CountDownLatch、CyclicBarrier、Semaphore

CountDownLatch用法 題目: 6個人同學和班長再教室,讓6個同學先出去,班長最後出去然後鎖門。 package main.test; import java.util.concurrent.CountDownLatch;

原创 Callable和runnable的區別

1、是否有返回值 2、是否需要泛型 3、是否拋異常 4、落地方法不一樣,一個是run,一個是call //創建新類MyThread實現runnable接口 class MyThread implements Runnable{ @O

原创 HashSet的底層剖析

HashSet的底層HashMap。 問題:爲什麼HashMap添加元素填進去的是兩個值key和value,而HashSet只填進去一個值呢?是不是HashSet的底層並非HashMap? 回答:並不是。HashSet的底層就是HashM

原创 ReadWriteLock實例

題目: 5個人對一個文件寫,5個人人對一個文件讀。 package main.test; import java.util.HashMap; import java.util.concurrent.TimeUnit; import ja

原创 GC(分代收集算法)

次數上頻繁收集Young區 次數上較少收集Old區 基本不動元空間   四大算法: 1、引用計數法; 2、複製算法;新生代-不存在內存碎片,但佔內存 3、標記清除;老年代-耗時,有內存碎片,不佔內存  4、標記壓縮;老年代-不佔內存,耗時

原创 多線程編程:synchronized和lock的對比

縱向對比: synchronized wait() notifyAll() | | | Reent

原创 多線程之間的交互編程(虛假喚醒)

結論: 1、高聚低合前提下,線程操作資源類 2、判斷/幹活/通知 3、多線程交互中,必須要防止多線程的虛假喚醒,也即(判斷只用while,不能用if) 4、標記位   題目: 一個空調,兩個人,一人關,一人開,交替進行。  packag

原创 MySQL高級-知識總結(索引優化)

1前言 對於現在市場上的數據庫操作需求而言,如果你僅僅只會增刪改查,就太low了。日前數據量指數級增加,對高併發等問題的解決成了對數據庫操作的基本功,所有對於大廠來說,肯定會考數據庫相關的(非增刪改查)知識。 優化sql數據庫分析步驟:

原创 Nginx知識總結

1、什麼的nginx? Nginx是高性能的HTTP和反向代理的服務器,處理高併發能力是十分強大的,能經受高負載的考驗,由報告表明能支持高達50000哥併發連接數。在實際的使用中,tomcat大約能支持500個併發連接數,nginx大約能