原创 SQL優化如何才能hold住

1、吹吹水 前幾天老大問我怎麼進行sql優化的,我回答了新建索引。哈哈哈,然後老大就出去找棍子了,進來之後跟我說你知道門在哪邊吧,自己出去還是我請你出去? 然後被迫出去捱打,回來之後老大說去看下什麼是Explain,然後交一

原创 面試必問:多線程與線程池

前言 前幾章都在講一些鎖的使用和原理,主要是爲了保證多線程情況下變量的原子性,但這並不是說多線程不好,合理利用還是有好處的。至於什麼好處,看下面內容就懂了,先打個比方吧(誰叫比方,上來捱打):假如你體育考試,要跑1000米,你

原创 面試必問:樂觀鎖與悲觀鎖

前言 小孩子才做選擇,我全都要,今天寫一下面試必問的內容:樂觀鎖與悲觀鎖。主要從以下幾方面來說: 何爲樂觀鎖何爲悲觀鎖樂觀鎖常用實現方式悲觀鎖常用實現方式樂觀鎖的缺點悲觀鎖的缺點 寫文章的時候突然收到朋友發來的消息,說烏茲退

原创 AQS(AbstractQueuedSynchronizer)的實現原理

前言 前一篇文章講了一下AQS是什麼以及AQS可重寫的方法、提供的模板方法,本篇就從以下幾點來寫一下同步器的實現原理。 同步隊列獨佔式同步狀態獲取與釋放共享式式同步狀態獲取與釋放超時獲取同步狀態 同步隊列實現原理 同步器依

原创 項目中有用過鎖嗎?能解釋一下什麼是AQS(AbstractQueuedSynchronizer)嗎?

1 前言 鎖是用來控制多個線程訪問共享資源的方式,一般來說,一個鎖能防止多個線程同時訪問共享資源(但是有些鎖可以允許多個線程併發的訪問共享資源,如讀寫鎖)。在以前,Java程序是靠synchronized來實現鎖功能的,而在J

原创 Redis分佈式鎖的實現以及原理

1 前言 在程序中,我們想要保證一個變量的可見性及原子性,我們可以用volatile(對任意單個volatile變量的讀/寫具有原子性,但類似於volatile++這種複合操作不具有原子性)、synchronized、樂觀鎖、