這是java高並發系列第21篇文章。 本文主要內容 從網站計數器實現中一步步引出CAS操作 介紹java中的CAS及CAS可能存在的問題 悲觀鎖和樂觀鎖的一些介紹及數據庫樂觀鎖的一個常見示例 使用java中的原子操作實現網站計數器功能 我們需要解決的問題 需求 ...
新建線程 新建線程很簡單。只需要使用new關鍵字創建一個線程對象,然后調用它的start 啟動線程即可。 那么線程start 之后,會干什么呢 線程有個run 方法,start 會創建一個新的線程並讓這個線程執行run 方法。 這里需要注意,下面代碼也能通過編譯,也能正常執行。但是,卻不能新建一個線程,而是在當前線程中調用run 方法,將run方法只是作為一個普通的方法調用。 所以,希望大家注意, ...
2019-07-15 17:38 0 521 推薦指數:
這是java高並發系列第21篇文章。 本文主要內容 從網站計數器實現中一步步引出CAS操作 介紹java中的CAS及CAS可能存在的問題 悲觀鎖和樂觀鎖的一些介紹及數據庫樂觀鎖的一個常見示例 使用java中的原子操作實現網站計數器功能 我們需要解決的問題 需求 ...
阿里p7一枚,可以關注公眾號:路人甲Java,咱們一起同行! 這是java高並發系列第18篇文章。 本文主要內容 什么是線程池 線程池實現原理 線程池中常見的各種隊列 自定義線程創建的工廠 常見的飽和策略 自定義飽和策略 線程池中兩種關閉方法有何不同 擴展線程 ...
這是java高並發系列第31篇。 環境:jdk1.8。 java高並發系列已經學了不少東西了,本篇文章,我們用前面學的知識來實現一個需求: 在一個線程中需要獲取其他線程的執行結果,能想到幾種方式?各有什么優缺點? 結合這個需求,我們使用6種方式,來對之前學過的知識點做一個回顧,加深記憶 ...
java高並發系列-第1天:必須知道的幾個概念 同步(Synchronous)和異步(Asynchronous) 同步和異步通常來形容一次方法調用,同步方法調用一旦開始,調用者必須等到方法調用返回后,才能繼續后續的行為。異步方法調用更像一個消息傳遞,一旦開始,方法調用就會立即返回,調用者就可以 ...
java高並發系列 - 第12天JUC:ReentrantLock重入鎖 本篇文章開始將juc中常用的一些類,估計會有十來篇。 synchronized的局限性 synchronized是java內置的關鍵字,它提供了一種獨占的加鎖方式。synchronized的獲取和釋放鎖由jvm實現 ...
這是java高並發系列第16篇文章。 本篇內容 介紹CountDownLatch及使用場景 提供幾個示例介紹CountDownLatch的使用 手寫一個並行處理任務的工具類 假如有這樣一個需求,當我們需要解析一個Excel里多個sheet的數據時,可以考慮使用多線程,每個 ...
這是java高並發系列第32篇文章。 java環境:jdk1.8。 本文主要內容 4種方式實現計數器功能,對比其性能 介紹LongAdder 介紹LongAccumulator 需求:一個jvm中實現一個計數器功能,需保證多線程情況下數據正確性。 我們來模擬50個線程 ...
這是java高並發系列第29篇。 環境:jdk1.8。 本文內容 介紹常見的限流算法 通過控制最大並發數來進行限流 通過漏桶算法來進行限流 通過令牌桶算法來進行限流 限流工具類RateLimiter 常見的限流的場景 秒殺活動,數量有限,訪問量巨大 ...