摘要:
1.作用 1)避免指令重排 举例子:uniqueInstance = new Singleton() 这个操作不是原子操作,步骤为:1.为 uniqueInstance 分配内存空间; 2. 初始化 uniqueInstance; 3. 将 uniqueInstance 指向分配的内存地址 如果指令 阅读全文
摘要:
1.互斥条件 :该资源任意⼀个时刻只由⼀个线程占⽤。 避免方法:这个条件我们没有办法破坏,因为我们⽤锁本来就是想让他们互斥的(临界 资源需要互斥访问)。 2. 请求与保持条件 :⼀个进程因请求资源⽽阻塞时,对已获得的资源保持不放。 避免方法:⼀次性申请所有的资源。 3. 不剥夺条件 :线程已获得的资 阅读全文
摘要:
1.广播模式 通俗来讲就是我一个生产者发送的东西所有的消费者都能接收到。 2.direct直连 可以进行路由key的匹配,只有匹配成功的消费者才能接收到消息。 3.topic 在第二种的基础上加入了模糊匹配路由key。 阅读全文
摘要:
一、Jmeter介绍 二、Jmeter安装教程 1、下载地址(安装之前首先配置Java环境变量) Apache JMeter - Download Apache JMeter 根据自己电脑系统来选择合适的安装包即可。 2、环境变量配置 配置Jmeter的环境变量: 新建变量名 JMETER_HOME 阅读全文
摘要:
首先,@interface不是接口是注解类,在jdk1.5之后加入的功能,使用@interface自定义注解时,自动继承了java.lang.annotation.Annotation接口,由编译程序自动完成其他细节,我们通过反编译可以看到,源代码如下: //保留的环境@Retention(RUNT 阅读全文
摘要:
1.名词解释 举例子说明:在秒杀商品时,如果redis中没有商品信息,请求就会落在持久层上,这样就会导致持久层压力很大。穿透指的是,本来有一个商品信息在redis中有大量的请求访问到,然后突然这个商品信息失效了,导致请求落在了持久层上。而雪崩指的是突然好多商品信息失效了(最大可能是redis挂掉导致 阅读全文
摘要:
1.目的 为了解决持久化的问题,我们先来解释一下什么叫持久化。所谓持久化就是数据可以一直保存在数据库中,比如说mysql在你重启之后数据还是存在在数据库中,而我们的redis在重启之后就会出现数据消失的问题。所以我们有必要在重启之后依然能加载原来的数据,这就是所谓的持久化。 2.解决方案 1)快照 阅读全文
摘要:
一、redis是什么redis是一个高性能的key-value数据库,它是完全开源免费的,而且redis是一个NOSQL类型数据库,是为了解决高并发、高扩展,大数据存储等一系列的问题而产生的数据库解决方案,是一个非关系型的数据库。但是,它也是不能替代关系型数据库,只能作为特定环境下的扩充。 redi 阅读全文
摘要:
1.自己的理解 决策树的遍历过程,而在决策过程中会考虑到所有的情况,每次到根节点就是一种情况,在一种决策完成后树会向上回溯去找其他的决策方案。 2.例子 全排列 给定一个数组,列出所有的排列情况 List<List<Integer>> res = new LinkedList<>(); /* 主函数 阅读全文
摘要:
cookie数据保存在客户端,session数据保存在服务端。 session 简单的说,当你登陆一个网站的时候,如果web服务器端使用的是session,那么所有的数据都保存在服务器上,客户端每次请求服务器的时候会发送当前会话sessionid,服务器根据当前sessionid判断相应的用户数据标 阅读全文
摘要:
三级缓存的作用是为了解决spring中Bean依赖注入时发生的循环依赖。如果不需要AOP,那么只需要二级缓存即可实现,如果有AOP,其实二级缓存也能够实现,但是会打破Bean的生命周期,不符合spring的原则,因为需要把AOP对象放入二级缓存中,那么就必须在所有需要AOP处理的Bean对象初始化之 阅读全文
摘要:
1.原因 文件在使用sorted()排序时总是按着字符的顺序排序,而文件管理器里面的排序是按着数字进行排序的,而我需要的就是按着数字排序。 2.解决办法 安装natsort库 pip install natsort 使用方法 list = natsorted(list,alg=ns.PATH) 其中 阅读全文