自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 缓存策略:如何解决缓存穿透、缓存雪崩、缓存并发

缓存策略:如何解决缓存穿透、缓存雪崩、缓存并发系统收到用户的频繁查询请求时,会先从缓存中查找数据,如果缓存中有数据,直接从中读取数据,响应给请求方;如果缓存中没有数据,则从数据库中读取数据,然后再更新缓存,这样再获取这条数据时,可以直接从缓存中获取,不用再读取数据库。这是一种常见的解决“查询请求频繁”的设计方案,那么这种方案在查询请求并发较高时,会存在什么问题呢?缓存穿透问题缓存穿透指的是每次查询个别 key 时,key 在缓存系统不命中,此时应用系统就会从数据库中查询,如果数据库中存在这条数据,

2021-03-06 11:04:01 226 1

原创 分布式、高并发、多线程和高可用的区别与联系

分布式、高并发、多线程和高可用的区别与联系分布式分布式更多的一个概念,是为了解决单个物理服务器容量和性能瓶颈问题而采用的优化手段。 该领域需要解决的问题极多,在不同的技术层面上,又包括:分布式文件系统、分布式缓存、分布式数据库、分布式计算等,一些名词如Hadoop、zookeeper、MQ等都跟分布式有关。从理念上讲,分布式的实现有两种形式:水平扩展: 当一台机器扛不住流量时,就通过添加机器的方式,将流量平分到所有服务器上,所有机器都可以提供相当的服务;垂直拆分: 前端有多种查询需求时,一台机器扛不

2021-03-05 16:18:22 703 1

原创 数据库幂等性的实现方法

数据库幂等性的实现方法使用数据库实现幂等性的方法有三种:通过悲观锁来实现幂等性通过唯一索引来实现幂等性通过乐观锁来实现幂等性接下来我们分别来看这些实现方式的具体执行过程。① 悲观锁使用悲观锁实现幂等性,一般是配合事务一起来实现,在没有使用悲观锁时,我们通常的执行过程是这样的,首先来判断数据的状态,执行 SQL 如下:select status from table_name where id='xxx';然后再进行添加操作:insert into table_name (id) v

2021-03-03 10:51:04 2528

原创 主内存和工作内存的关系?

主内存和工作内存的关系?CPU 有多级缓存,导致读的数据过期由于 CPU 的处理速度很快,相比之下,内存的速度就显得很慢,所以为了提高 CPU 的整体运行效率,减少空闲时间,在 CPU 和内存之间会有 cache 层,也就是缓存层的存在。虽然缓存的容量比内存小,但是缓存的速度却比内存的速度要快得多,其中 L1 缓存的速度仅次于寄存器的速度。结构示意图如下所示:在图中,从下往上分别是内存,L3 缓存、L2 缓存、L1 缓存,寄存器,然后最上层是 CPU 的 4个核心。从内存,到 L3 缓存,再到 L2

2021-03-02 14:52:38 739

原创 线程在六种状态之间的转换

线程在六种状态之间的转换New(新创建)New 表示线程被创建但尚未启动的状态:当用 new Thread() 新建一个线程时,如果线程没有开始运行 start() 方法,所以也没有开始执行 run() 方法里面的代码,那么此时它的状态就是 New。而一旦线程调用了 start(),它的状态就会从 New 变成 Runnable。Runnable(可运行)Java 中的 Runable 状态对应操作系统线程状态中的两种状态,分别是 Running 和 Ready,也就是说,Java 中处于 Runn

2021-02-02 10:50:52 222

原创 实现线程的方法追更溯源只有一种

实现线程的方法追更溯源只有一种实现 Runnable 接口第一种方式是通过实现 Runnable 接口实现多线程,首先通过 RunnableThread 类实现 Runnable 接口,然后重写 run() 方法,之后只需要把这个实现了 run() 方法的实例传到 Thread 类中就可以实现多线程。继承 Thread 类第二种方式是继承 Thread 类,如代码所示,与第一种方式不同的是它没有实现接口,而是继承 Thread 类,并重写了其中的 run() 方法。线程池创建线程对于线程池而言,

2021-02-01 09:57:44 73

原创 释怀的读书笔记之《Java并发编程实战》一

这本书开篇解释了活跃性,性能,安全性在线程中的作用,也解释了锁的意义,以及RMI的作用是能使代码能够调用在jvm中运行的对象,老外的技术书写的真的好,开篇没有废话直接告诉你本书目的,怎么做,为什么这么做。Java如何实现原子操作可以使用锁和循环CAS(compareAndSet这个原来就叫CAS)操作来实现,Java并发包中也有一些开发框架也用到了自旋CAS...

2018-07-16 14:54:52 204 2

原创 Java避免类之间的循环依赖笔记--个人看法

Java中吐过出现循环依赖的话一般都是StackOverflowError 这个问题很棘手刚开始我遇到的时候也解决了半天,因为不知道为啥错,那么我先来解释一下什么叫循环依赖,直接上代码(代码网上随便拉的一个便于自己记忆)。public class Customer { private List<Bill> bills; //特定Customer的折扣根据订单数目计算 ...

2018-07-16 09:31:19 1042

Andriod登录注册

安卓简单登录页面,添加了引导页面,密码明文密文切换,手势控制,记住密码和自动登录功能

2019-03-12

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

TA关注的人

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