原创 大白話布隆過濾器

本文是站在小白的角度去討論布隆過濾器,如果你是科班出身,或者比較聰明,又或者真正想完全搞懂布隆過濾器的可以移步。 不知道從什麼時候開始,本來默默無聞的布隆過濾器一下子名聲大燥,彷彿身在互聯網,做着開發的,無人不知,無人不曉,哪怕對技術不是很

原创 劍指Spring源碼(三)俯瞰Spring的Bean的生命週期(大衆版)

距離上一次寫Spring源碼解析,已經過去了快要好幾個月了,主要原因還是Spring的源碼解析類文章太難寫了,不像我先前寫的什麼CAS源碼,AQS源碼,LinkedBlockingQueue等等,這些無非就是分析幾個核心方法,代碼也不算太長

原创 ThreadLocal源碼解析,內存泄露以及傳遞性

我想ThreadLocal這東西,大家或多或少都瞭解過一點,我在接觸ThreadLocal的時候,覺得這東西很神奇,在網上看了很多博客,也看了一些書,總覺得有一個坎跨不過去,所以對ThreadLocal一直是一知半解的,好在這東西在實際開發

原创 併發編程基礎(下)

書接上文。上文主要講了下線程的基本概念,三種創建線程的方式與區別,還介紹了線程的狀態,線程通知和等待,join等,本篇繼續介紹併發編程的基礎知識。 sleep 當一個執行的線程調用了Thread的sleep方法,調用線程會暫時讓出指定時間的

原创 併發編程基礎(上)

從我開始寫博客到現在,已經寫了不少關於併發編程的了,差不多還有一半內容整個併發編程系列就結束了,而今天這篇博客是比較簡單的,只是介紹下併發編程的基礎知識( = =!其實,對於大神來說,前面所有博客都是基礎)。本來我不太想寫這篇博客,因爲這篇

原创 Random在高併發下的缺陷以及JUC對其的優化

Random可以說是每個開發都知道,而且都用的很6的類,如果你說,你沒有用過Random,也不知道Random是什麼鬼,那麼你也不會來到這個技術類型的社區,也看不到我的博客了。但並不是每個人都知道Random的原理,知道Random在高併發

原创 LinkedBlockingQueue源碼解析

上一篇博客,我們介紹了ArrayBlockQueue,知道了它是基於數組實現的有界阻塞隊列,既然有基於數組實現的,那麼一定有基於鏈表實現的隊列了,沒錯,當然有,這就是我們今天的主角:LinkedBlockingQueue。ArrayBloc

原创 ArrayBlockQueue源碼解析

清明節和朋友去被抖音帶火的一個餐廳,下午兩點鐘取晚上的號,前面已經有十幾桌了,四點半餐廳開始正式營業,等輪到我們已經近八點了。餐廳分爲幾個區域,只有最火的區域(在小船上)需要排號,其他區域基本上是隨到隨吃的,最冷清的區域幾乎都沒什麼人。菜的

原创 難以理解的AQS(下)

在上一篇博客,簡單的說下了AQS的基本概念,核心源碼解析,但是還有一部分內容沒有涉及到,就是AQS對條件變量的支持,這篇博客將着重介紹這方面的內容。 條件變量 基本應用 我們先通過模擬一個消費者/生產者模型來看下條件變量的基本應用: 當有

原创 水深無比的AQS(上)

在一篇博客中,我們看了下CopyOnWriteArrayList的源碼,不是很難,裏面用到了一個可重入的排他鎖: ReentrantLock,這東西看上去和Synchronized差不多,但是和Synchronized是完全不同的東西。 S

原创 CopyOnWriteArrayList源碼解析

Java併發包提供了很多線程安全的集合,有了他們的存在,使得我們在多線程開發下,可以和單線程一樣去編寫代碼,大大簡化了多線程開發的難度,但是如果不知道其中的原理,可能會引發意想不到的問題,所以知道其中的原理還是很有必要的。 今天我們來看下J

原创 淺談負載均衡算法與實現

記得,我剛工作的時候,同事說了一個故事:在他剛工作的時候,他同事有一天興沖沖的跑到公司說,你們知道嗎,公司請了個大牛。大牛?對,那人會寫AJAX!哇,真是大牛啊,跟着他,可以學不少東西啊。我聽了笑了,但有點難以理解,因爲現在幾乎只要是一個開

原创 CAS、原子操作類的應用與淺析及Java8對其的優化

前幾天刷朋友圈的時候,看到一段話:如果現在我是傻逼,那麼我現在不管怎麼努力,也還是傻逼,因爲我現在的傻逼是由以前決定的,現在努力,是爲了讓以後的自己不再傻逼。話糙理不糙,如果妄想現在努力一下,馬上就不再傻逼,那是不可能的,需要積累,需要沉澱

原创 Spring中你可能不知道的事(二)

在上一節中,我介紹了Spring中極爲重要的BeanPostProcessor BeanFactoryPostProcessor Import ImportSelector,還介紹了一些其他的零碎知識點,正如我上一節所說的,Spring實在

原创 Spring中你可能不知道的事(一)

Spring作爲Java的王牌開源項目,相信大家都用過,但是可能大家僅僅用到了Spring最常用的功能,Spring實在是龐大了,很多功能可能一輩子都不會用到,今天我就羅列下Spring中你可能不知道的事。一是可以幫助大家以後閱讀源碼,知道