原创 併發容器CopyOnWriteArrayList解析

ArrayList是線程不安全的,在早期可以用Vector代替,或者利用Collections工具類,通過包裝實現線程安全,但是這兩種方方式效率低下。來看一下Vector源碼 可以看出它實現線程安全的方式就是在方法上加鎖,我們知

原创 線程同步工具Condition詳解

Condition可以代替Object監視器方法( wait , notify和notifyAll ),必須和Lock配合使用, Lock替換synchronized方法和語句的使用, Condition取代了對象監視器方法的使用

原创 一文徹底搞懂線程池

概述 創建線程本身開銷大,反覆創建並銷燬,過多的佔用內存。所以有大量線程創建考慮使用線程池。線程池不用反覆創建線程達到線程的複用,更具配置合理利用cpu和內存減少了開銷,性能會得到提高,還能統一管理任務 比如服務器收到大量請求,每

原创 springboot整合接口管理工具Swagger2

在前後端分離開發中,爲了減少與其它團隊的溝通成本,一般都會構建一份 RESTful API 文檔來描述所有的接口信息。但傳統的方式有許多弊端,不僅編寫文檔工作量巨大,而且維護不方便,測試也不方便(需要藉助第三方工具,如 Postm

原创 小辣椒Lombok用法

工程中不可避免會在實體類中寫大量的set或者get方法,如果工程變化,生成的一些方法會跟着改變,這就是要改變源代碼,違背了開閉原則,有什麼方法可以避免功能變化而不用更改生成的諸如set放法人呢?答案就是Lombok小辣椒 首先需要

原创 併發容器ConcurrentHashMap原理解析

HashMap是線程不安全的,如併發下鍵相同的put後面的put會覆蓋前面的put,這樣得到的結果會與實際不符,所以有線程安全的情況下就必須使用一些手段讓HashMap變得線程安全,或者用其他線程安全的map替代,而這個安全的ma

原创 併發工具類ThreadLocal詳解

話不多說,直奔主題 源碼分析 /** *這個類可以爲每個線程分配某個類獨立對象(局部變量),達到線程安全通常 *是工具類,典型的SimpleDateFormat和Random,還有就是爲每個線程內需要保存全 *局變量可以讓不

原创 redis多實例緩存系統實現

redis是一個高可用,可持久化,基於內存的強大非關係型數據庫,今天做個記錄利用redis做一個簡單的多實例緩存系統並實現主從複製。 首先在linux上配置多實例redis服務以redis5.0.5爲例: 進入redis目錄 v

原创 Elasticsearch第一篇核心概念

elasticsearch的核心概念 Near Realtime(NRT):近實時,兩個意思,從寫入數據到數據可以被搜索到有一個小延遲(大概1秒);基於es執行搜索和分析可以達到秒級 Cluster:集羣:包含多個節點,每個節點

原创 分頁查詢實踐

上次筆試,問分頁查詢,居然不知如何回答,其實也不難,今天做了一個測試,在1000萬數據中做分頁查詢。爲什麼說1000萬呢?大概數據大聽起來流弊點吧!!!!! 什麼是分頁查詢呢? 就是這種,這是百度查詢csdn得到的結果,因爲數據過

原创 普通變量變爲原子變量——AtomicIntegerFieldUpdater

有的時候我們不需要直接申明一個原子變量,比如申明一個AtomicInteger對象,因爲原子變量本身就影響性能,還有就是隻是偶爾進行原子操作,比如在某一時刻段,那麼這個時候AtomicIntegerFieldUpdater或者At

原创 併發之原子數組

原子數組,可以對數組進行無鎖原子操作,java.util.concurrent.atomic 中的類延伸了volatile,其中原子數組,可以對數組進行無鎖原子操作,以AtomicIntegerArray爲例子 源碼分析 構造方法

原创 併發編程之AtomicReference

此類屬於原子併發包,可以對引用類型進行原子無鎖操作 源碼分析 構造方法 //保證可見性和禁止指令重排序 private volatile V value; /** * 用給定的對象創造一個引用原子類型

原创 千萬級別數據插入實現方案

上次面試問我上萬級別的數據如何快速插入數據庫,當時不知怎麼回答,回來通過查資料和實踐,通過線程池和事務管理實現了批量快速插入數據,特地總結一下。 目錄結構,一個簡單的springboot工程 首先建立一個普通的表只有三個字段:

原创 Mysql高級知識總結

### `邏輯架構概` 和其它數據庫相比,MySQL有點與衆不同,它的架構可以在多種不同場景中應用併發揮良好作用。主要體現在存儲引擎的架構上, 插件式的存儲引擎架構將查詢處理和其它的系統任務以及數據的存儲提取相分離。這種架構可以