原创 Java 併發編程學習筆記(3) ----Semaphore-tryAcquire()的使用

tryAcquire()的使用 參數使用 當前時刻 tryAcquire(int permits) Acquires the given number of permits from this semap

原创 Java 併發編程學習筆記(4) ----Semaphore-使用Semaphore 實現一個字符串池

使用Semaphore 實現一個字符串池 類SemaPhore可以有效地對併發執行任務的線程數量進行限制,可以用在pool池技術中, 可以設置同時訪問pool池中數據的線程數量。 目的:實現同時有若干個線程可以訪問池中的數據,但

原创 Java併發編程實戰筆記1.0

1.併發編程領域可以抽象成三個核心問題:分工、同步和互斥 分工指的是如何高效地拆解任務並分配給線程,而同步指的是線程之間如何協作,互斥則是保證同一時刻只允許一個線程訪問共享資源。 2.併發編程領域問題的產生原因: 源頭之一:緩存導

原创 Java併發編程實戰筆記2.0

1.用鎖的最佳實踐 1.永遠只在更新對象的成員變量時加鎖 2.永遠只在訪問可變的成員變量時加鎖 3.永遠不在調用其他對象的方法時加鎖 2.信號量模型 信號量模型可以簡單概括爲:一個計數器,一個等待隊列,三個方法。

原创 Oracle:ROWNUM介紹和分頁使用

1.ROWNUM介紹 ROWNUM 是一種僞列,它會根據返回記錄生成一個序列化的數字。利用ROWNUM,我們可以生 產一些原先難以實現的結果輸出。最常被用到的場景就是分頁。但因爲它是僞列的這個特殊 性,我們在使用時也需要注意一些事

原创 JVM學習筆記2.0

1.運行時數據區域     Java虛擬機在執行Java程序的過程中會把它所管理的內存劃分爲若干個不同的數據區域。這些區域都有各自的用途,以及創建和銷燬的時間,有的區域隨着虛擬機進程的啓動而存在,有些區域則依賴用戶線程的啓動和結束

原创 類加載中的屬性問題

類加載中的屬性問題 舉三個例子來說明: 要準備的代碼 package com.lhc.load; public class SuperClass { static { System.out.printl

原创 消息隊列學習筆記(一)

1.消息隊列常用場景     消息隊列最常被使用的三種場景:異步處理、流量控制和服務解耦。     消息隊列的適用範圍不僅僅侷限於這些場景,還有包括:作爲發佈 / 訂閱系統實現一個微服務級系統間的觀察者模式;連接流計算任務和數據;

原创 JConsole 連接本地idea解決方法,親測可用

JConsole 連接本地idea解決方法,親測可用 0.問題環境 jdk:1.8.0_77 IDEA:2018.3.3 1.解決的問題 JConsole 連接本地idea,查看idea中的項目運行情況。 一開始選擇的是

原创 @EnableEurekaServer註解

@EnableEurekaServer 1.1 在項目啓動類上使用@EnableEurekaServer,可以將項目作爲SpringCloud中的註冊中心。那麼這個註解做了哪些事呢? 1.2 點進去@EnableEurekaSer

原创 Spring 時間發佈訂閱

Spring中事件的發佈訂閱機制 1.1 事件的發佈者發佈事件,事件的監聽這對對應的事件進行監聽,當監聽到對應的事件時,就會觸發調用相關的方法。因此,在事件處理中,事件是核心,是事件發佈者和事件監聽者的橋樑。 1.2 Spr

原创 Java8特性: Stream

Java8特性: Stream 1.1介紹 Java8中的Stream 對於集合的處理十分方便,使用起來也像德芙般絲滑~ 一.對於元素的匹配 使用Predicate (斷言,給一個參數T,返回boolean類型的結果)作爲參數

原创 Java 併發編程學習筆記(16) ----CompletionService

CompletionService 1.1 CompletionService 的功能 CompletionService的功能就是以異步的方式,一邊產生新的任務,一邊處理已完成任務的結果。 CompletionService主

原创 瞭解紅黑樹

紅黑樹(Red Black Tree) 0.紅黑樹的特點 是一種查找和修改刪除都比較高效的二叉樹 性質1.節點是紅色或黑色。 性質2.根節點是黑色。 性質3.每個紅色節點的兩個子節點都是黑色。(從每個葉子到根的所有路徑上不能有

原创 Java 併發編程學習筆記(14) ----ThreadPoolExecutor 線程池的方法

1.1 shutdown() 和 shutdownNow() 方法shutdown()的作用是使當前未執行完的線程繼續執行,而不再添加新的任務, shutdown()方法是不阻塞的。 方法shutdownNow()的作用是中斷所有