原文:【死磕 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