原创 數據庫 | 001-MySQL梳理系列(一)

MySQL基本組成 SQL執行流程 Server 層主要包括連接器、查詢緩存、分析器、優化器、執行器,包含了MySQL主要的很多核心功能,以及所有的內置函數、存儲過程、觸發器、視圖等,其實就是所有跨存儲引擎的功能都是在這一層實現的 存

原创 效率工具 | 快速創建虛擬機,Vagrant真香!

Vagrant 是一個基於Ruby的工具,主要用於創建和部署虛擬化開發環境。它以來於Oracle的開源VirtualBox虛擬化系統,通過使用 Chef創建自動化虛擬環境。 Vagrant 主要的功能如下: 建立和刪除虛擬機 配置虛擬

原创 [數據庫]000 - 🍳Sysbench 數據庫壓力測試工具

000 - 🍳Sysbench 數據庫壓力測試工具 sysbench 是一個開源的、模塊化的、跨平臺的多線程性能測試工具,可以用來進行CPU、內存、磁盤I/O、線程、數據庫的性能測試。目前支持的數據庫有MySQL、Oracle和Post

原创 [JVM工具(1)] 堆棧檢查利器jstat的使用

jstat 可以檢查 JVM 整體的運行情況,可以看到 新生代,老年代等的內存使用情況,以及GC 次數和耗時 命令格式 如 jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<co

原创 順序棧與鏈式棧的圖解與實現

# 順序棧與鏈式棧的圖解與實現 棧是一種特殊的線性表,它與線性表的區別體現在增刪操作上 棧的特點是先進後出,後進先出,也就是說棧的數據操作只能發生在末端,而不允許在中間節點進行操作 如上圖所示,對棧的增刪操作都只能在末端也就是棧頂操

原创 CountDownLatch、CyclicBarrier、Semaphore、Exchanger 的詳細解析

本文主要介紹和對比我們常用的幾種併發工具類,主要涉及 CountDownLatch 、 CyclicBarrier 、 Semaphore 、 Exchanger 相關的內容,如果對多線程相關內容不熟悉,可以看筆者之前的一些文章: 《J

原创 優雅關閉線程池的方案

我們經常在項目中使用的線程池,但是是否關心過線程池的關閉呢,可能很多時候直接再項目中直接創建線程池讓它一直運行當任務執行結束不在需要了也不去關閉,這其實是存在非常大的風險的,大量的線程常駐在後臺對系統資源的佔用是巨大的 ,甚至引發異常。

原创 JAVA中常見的阻塞隊列詳解

在之前的線程池的介紹中我們看到了很多阻塞隊列,這篇文章我們主要來說說阻塞隊列的事。 阻塞隊列也就是 BlockingQueue ,這個類是一個接 口,同時繼承了 Queue 接口,這兩個接口都是在JDK5 中加入的 。 Blocking

原创 基於synchronized鎖的深度解析

1. 問題引入 小夥伴們都接觸過線程,也都會使用線程,今天我們要講的是線程安全相關的內容,在這之前我們先來看一個簡單的代碼案例。 代碼案例: /** * @url: i-code.online * @author: AnonySta

原创 java中常見的六種線程池詳解

之前我們介紹了線程池的四種拒絕策略,瞭解了線程池參數的含義,那麼今天我們來聊聊Java 中常見的幾種線程池,以及在jdk7 加入的 ForkJoin 新型線程池 首先我們列出Java 中的六種線程池如下 線程池名稱 描述

原创 知道線程池的四種拒絕策略嗎?

在之前的文章中我們知道了線程池各個參數的含義,其中有個參數handler 我們說了是拒絕策略,具體關於線程池的拒絕策略我們這篇文章來分析 首先我們要理解線程池的拒絕策略的作用,它是用來處理當線程池無法繼續處理更多的任務時的處理機制,那麼

原创 [高頻面試]解釋線程池的各個參數含義

面試中非常高頻的一個面試題:解釋一下線程池中各個參數的含義。 這是一個非常常見但是卻會卡死一大堆人的一道面試題,能夠細緻的瞭解線程池的各個參數的含義對我們學習線程池和使用線程池有着巨大的好處的。 首先我們來看一下線程池主要的參數:

原创 總算把線程六種狀態的轉換說清楚了!

在我們接觸編程時,就開始接觸各種生命週期,比如對象的生命週期,程序的生命週期等等,對於線程來說也是存在自己的生命週期,而且這也是面試與我們深入瞭解多線程必備的知識,今天我們主要介紹線程的生命週期及其各種狀態的轉換。 線程的六種狀態

原创 Java併發編程-線程基礎

1. 線程的創建 首先我們來複習我們學習 java 時接觸的線程創建,這也是面試的時候喜歡問的,有人說兩種也有人說三種四種等等,其實我們不能去死記硬背,而應該深入理解其中的原理,當我們理解後就會發現所謂的創建線程實質都是一樣的,在我們面試

原创 下載JDK 與 Hotspot 虛擬機源碼

下載 jdk 源碼,與 jvm 虛擬機源碼,虛擬機現在主流都是 hotspot虛擬機 首先進入 openjdk 官方網站 http://openjdk.java.net/ ,這個網站中我們可以下載 jdk 源碼,也可以下載 ho