自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

More than coding

分享编程的快乐

  • 博客(7)
  • 资源 (1)
  • 收藏
  • 关注

原创 图解AbstractQueuedSynchronizer(AQS)实现原理:独占锁篇 笔记

前言

2021-02-24 11:54:58 156

原创 Java线程中断学习笔记

中断:代表线程的一种状态,值为true或false。默认为false,代表没有被中断。// Thread 类中的实例方法,持有线程实例引用即可检测线程中断状态public boolean isInterrupted() {}// Thread 中的静态方法,检测调用这个方法的线程是否已经中断// 注意:这个方法返回中断状态的同时,会将此线程的中断状态重置为 false// 所以,如果我们连续调用两次这个方法的话,第二次的返回值肯定就是 false 了public static boolean

2021-02-22 15:15:21 104

原创 CLH自旋锁的简易实现

前言我们知道,当一个线程想要申请的锁已经被其他线程持有时,那么该线程需要等待其释放锁。等待的方式有两种:一种是将线程状态置为等待状态(非RUNNABLE),另一种就是自旋了。自旋就是不断检测该锁是否被释放,而不是将线程挂起或休眠。这两种方式适用于不同的场景。当线程持有锁的时间较长时(一般情况下,也可以理解为,临界区代码较长),适合使用将线程挂起或休眠的方式,因为自旋太久会消耗大量CPU计算资源;当线程持有锁的时间较短时,适合自旋等待的方式,因为线程被挂起或休眠后需要被唤醒,而频繁的唤醒与挂起线程会导致大

2021-02-18 14:56:19 244

原创 JDK1.8 ConcurrentHashMap之源码分析笔记

前言JDK1.8 的ConcurrentHashMap相较于JDK1.7 的做了比较大的改动,取消了分段锁的设计。JDK8改成了Node数组+链表/红黑树,Node 是类似于一个 HashEntry 的结构。它的冲突再达到一定大小时会转化成红黑树,在冲突小于一定数量时又退回链表。同时使用了CAS和synchronized锁来保证线程安全,synchronized锁的粒度为桶中的头节点(链表Node结点或包装红黑树的TreeBin结点)。(JDK1.7 的ConcurrentHashMap分析见此篇文章)

2021-02-14 14:01:26 220

原创 手撕LFU算法

LFU(least frequently used (LFU) page-replacement algorithm)。即最不经常使用页置换算法,要求在页置换时置换引用计数最小的页,因为经常使用的页应该有一个较大的引用次数。LFU 算法相当于是淘汰访问频次最低的数据,如果访问频次最低的数据有多条,需要淘汰最旧的数据。把数据按照访问频次进行排序,而且频次还会不断变化,这也是其相较于LRU更难的原因。其实他们逻辑都是固定的,问题在于如何写出高效优雅的代码。我们为get/put这两种操作设计时间复杂度为.

2021-02-04 18:58:23 459

原创 手撕LRU算法

LRU是Least Recently Used的缩写,即最近最少使用,是一种常用的页面置换算法,选择最久未使用的页面予以淘汰。LRU是一种缓存淘汰策略,它认为最近使用的数据就是有用的,最久没使用的数据就是没用的,所以在当容量满了之后,会先淘汰掉最久没使用的数据,腾出空间来放新数据。LeetCode的146题就要求我们设计这样一个类,要求我们在O(1)时间复杂度内完成。根据LRU的定义,我们总结出LRU的操作规则:在使用数据(get/put)后,那么该数据就是最近使用的。当容量满了之后,要删.

2021-02-04 11:07:20 423

原创 通用解法团灭LeetCode股票买卖问题

本文受labuladong-团灭 LeetCode 股票买卖影响,在其基础上增加了自己的阐述,方便理解在LeetCode上有这么6道买卖股票的问题,如果你单独去看每道题的题解,可能会觉得这好像是不同的6道题,而且有的解法很精巧,不可能在短时间内想到。其实这6道题都是同一道题(买卖股票的最佳时机 IV)的变种,如果这道题我们会了,那么就可以一举把这6题都拿下。那么接下来我们来看看如何解这道“始祖”题。这里要注意:一笔交易是指从买入股票到卖出的整个过程。我们先来看一下为什么这道题能用动态规划求解.

2021-02-02 16:58:49 526

全国高校坐标(腾讯地图经纬度) .txt

全国高校坐标(腾讯地图经纬度) .txt

2019-08-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除