摘要:
| 总线类型 | CAN | CANFD | 以太网100Base-T1 | 以太网1000Base-T1 | FlexRay | | : : | : : | : : | : : | : : | : : | | 信道数 | 1 | 1 | 1 | 1 | 2 | | 带宽能力上限/bps | 1M 阅读全文
摘要:
Dokcer运行Nacos容器自动退出问题 参考博文 学生党,租的云服务器,2核2G。使用Docker运行Nacos容器的时候发现总是自动退出。Nacos日志里面没有明显的报错信息。查了一下是内存溢出错误,指令如下 journalctl -k | grep -i -e memory -e oom 发 阅读全文
摘要:
分布式锁 本文整理自黑马程序员相关资料 问题的引入 在平时单服务的情况下,我们使用互斥锁可以保证同一时刻只有一个线程执行自己的业务。原理是,在JVM内部维护了一个锁监视器,锁监视器保证了同一时刻只有一个线程获取到锁。但是如果开启了多个服务,就会有多个JVM,从而有多个不同的锁监视器,每个锁监视器监视 阅读全文
摘要:
缓存穿透,缓存雪崩,缓存击穿 本文整理自黑马程序员相关资料 缓存穿透 缓存穿透是指客户端请求的数据在缓存中和数据库中都部存在,这样缓存永远不会生效。因此这些请求都会穿过缓存,最终请求到数据库上,对数据库造成非常大的压力。 常见的解决方案有两种: 缓存空对象:当缓存和数据库都没有请求的数据时,将查询的 阅读全文
摘要:
Redis缓存更新策略 本文整理自黑马程序员相关资料 内存淘汰 超时剔除 主动更新 说明 不用自己维护,利用Redis的内存淘汰机制,当内存不足时自动淘汰部分数据。下次查询时更新缓存 给缓存数据添加TTL时间,到期后自动删除缓存,下次查询时更新缓存 编写业务逻辑,在修改数据的同时,更新缓存 一致性 阅读全文
摘要:
关于锁不住toString()后的字符串的问题 原因:toString()的源码如下所示,最终都是生成新的字符串,所以当多线程调用的时候,每个线程锁的并不是同一对象。 public static String toString(long i) { int size = stringSize(i); 阅读全文
摘要:
SpringDataRedis的序列化的一些问题 RedisTemplate可以接收任意Object作为值写入Redis,但是如果不实现设置序列化器的化默认是采用JDK序列化,序列化后的结果可读性差并且内存占用空间大,如下图。 自定义RedisTemplate的序列化方式 key和 hashKey采 阅读全文
摘要:
Atomic/CountDownLatch/CyclicBarrier/Semaphore/Exchanger/Executors/Future 1. Atomic框架包 Atomic包里放着所以保证线程安全的原子类 大致分为7类 基本数据类型的原子操作类 引用类型的原子操作类 数组类型的原子操作类 阅读全文
摘要:
多线程笔记(三) 1. 同步容器与并发容器 同步容器 通过synchronized关键字实现线程安全的容器;或通过Collections这个工具类的synchronizedXXX方法创建的容器,都称为同步容器 例如Vector, Stack, Hashtable Vector是list接口的线程安全 阅读全文
摘要:
多线程笔记(二) 1. Synchronized 和 Lock 的区别 synchronized是Java的关键字,是 JVM 层面的内置功能和实现。 Lock是一个接口,是代码层面的实现 synchronized可以隐式的获取,释放锁 lock是显式的获取,释放锁 synchronized在发生异 阅读全文