原文:【死磕 Java 基礎】 — 自己動手實現一個 LRU

LRU,即 Least Recently Use ,直譯為 最近最少使用 。它是根據數據的歷史訪問記錄來進行數據淘汰的,淘汰掉最先訪問的數據,其核心思想是 如果數據最近被訪問過,那么將來被訪問的幾率也會更加高。 要實現 LRU,需要做到兩點: 查詢出最近最晚使用的項 給最近使用的項做一個標記 實現的方案有多種,這里小編主要介紹兩種: LinkedHashMap 雙向鏈表 HashMap Linke ...

2021-08-20 08:52 1 365 推薦指數:

查看詳情

java線程系列之自己動手一個線程池(續)

機橫屏看源碼更方便) 問題 (1)自己動手寫的線程池如何支持帶返回值的任務呢? (2)如果任務執行的過程中拋出異常了該怎么處理呢? 簡介 上一章我們自己動手寫了一個線程池,但是它是不支持帶返回值的任務的,那么,我們自己能否實現呢?必須可以,今天我們就一起來實現帶返回值任務 ...

Fri Oct 11 07:33:00 CST 2019 0 487
java線程系列之自己動手一個線程池

歡迎關注我的公眾號“彤哥讀源碼”,查看更多源碼系列文章, 與彤哥一起暢游源碼的海洋。 (機橫屏看源碼更方便) 問題 (1)自己動手一個線程池需要考慮哪些因素? (2)自己動手寫的線程池如何測試? 簡介 線程池是Java並發編程中經常使用到的技術,那么自己如何動手一個線程池 ...

Wed Oct 09 16:15:00 CST 2019 0 1489
java線程系列之自己動手一個線程池

問題 (1)自己動手一個線程池需要考慮哪些因素? (2)自己動手寫的線程池如何測試? 簡介 線程池是Java並發編程中經常使用到的技術,那么自己如何動手一個線程池呢?本文彤哥將手把手帶你寫一個可用的線程池。 屬性分析 線程池 ...

Wed Nov 25 04:35:00 CST 2020 0 398
Java 基礎】— 我同事一個 select 分頁語句查出來了 3000W 條數據

某天我正在工位上聽着 Vicotry,愉快地敲着 hello world ,這感覺就像我寫的代碼能征服世界。突然運維給我打了一個電話,說我們某台服務器 OOM 了,要我過去看下,這感覺就像 xxx,你懂的。 去運維室、登錄服務器、查看日志、....一頓操作猛如虎,看到一個 List 對象 ...

Sun Aug 22 17:22:00 CST 2021 2 453
Java並發】—–深入分析volatile的實現原理

通過前面一章我們了解了synchronized是一個重量級的鎖,雖然JVM對它做了很多優化,而下面介紹的volatile則是輕量級的synchronized。如果一個變量使用volatile,則它比使用synchronized的成本更加低,因為它不會引起線程上下文的切換和調度。Java語言規范 ...

Wed Dec 15 06:59:00 CST 2021 0 305
Java並發】-----深入分析synchronized的實現原理

記得剛剛開始學習Java的時候,一遇到多線程情況就是synchronized,相對於當時的我們來說synchronized是這么的神奇而又強大,那個時候我們賦予它一個名字“同步”,也成為了我們解決多線程情況的百試不爽的良葯。但是,隨着我們學習的進行我們知道synchronized是一個重量級鎖 ...

Tue Dec 14 07:39:00 CST 2021 1 412
Java並發】-----深入分析volatile的實現原理

通過前面一章我們了解了synchronized是一個重量級的鎖,雖然JVM對它做了很多優化,而下面介紹的volatile則是輕量級的synchronized。如果一個變量使用volatile,則它比使用synchronized的成本更加低,因為它不會引起線程上下文的切換和調度。Java語言 ...

Thu Feb 09 01:46:00 CST 2017 5 24952
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM