阻塞队列 BlockingQueue BlockingQueue的四组API 1.运行时会抛异常的 2.返回一个Boolean值不抛异常的 3.阻塞,等待(一直等!!!) 4...
ReadWriteLock
计数器 减法计数器 CountDownLatch 加法计数器 CyclicBarrier Semaphore
需要留意: 多线程并发的情况下,使用Callable,运行结果会做缓存处理,提高效率。 获取返回标识可能会遇到阻塞,一般会放在程序最后执行,或者采取异步调用方式。
ArrayList线程不安全 运行结果: 从运行结果来看,在多线程并发的情况下使用ArrayList是极其不安全的,它会引发java.util.ConcurrentModif...
如何判断锁的是什么? 首先我们先来看下面的代码。思考下面两个问题。 synchronized 锁的对象是方法的调用者!就上面代码而言,看电影和玩游戏两个方法是用的TV对象的一...
传统Synchronized版 问题:上诉代码只是跑了A和B两个线程,请问,若再多几个线程,如四个线程,8个线程,线程是否还安全?答案是不安全的。那应该如何解决呢? 虚假唤醒...
传统的Synchronized锁 线程就是一个单独的资源类,它没有任何的附属操作!先看不加Synchronized多线程并发下的买票问题: 运行结果: 很明显可以看到,多个线...
RabbitMQ概念 生产者与消费者 Producer:消息的生产者 Consumer:消息的消费者 Queue 消息队列,提供了 FIFO 的处理机制,具有缓存消息的能力。...
什么是Actor模型? Actor 模式是一个解决分布式计算的数学模型,其中 Actor 是基础,它能回应接收到消息,能够自我决策,创建更多的 Actor,发送更多的消息,决...
什么是MQ? Message Queue(MQ),消息队列中间件。很多人都说:MQ 通过将消息的发送和接收分离来实现应用程序的异步和解偶,这个给人的直觉是——MQ 是异步的,...
redis分发订阅原理 redis是使用c语言实现的,通过分析redis源码里的public.c文件,了解发布和订阅机制的底层实现,藉此加深对redis的理解。redis通过...
什么是缓存穿透?(查不到) 缓存穿透是指,用户想要查询一个数据,发现redis内存数据库没有,也就是缓存没有命中,于是向持久层数据库中查询,发现也没有,于是本次查询失败。当用...
概述 redis提供两种方式进行持久化,一种是RDB持久化(原理是将Reids在内存中的数据库记录定时dump到磁盘上的RDB持久化),另外一种是AOF持久化(原理是将Rei...
概述 Redis 集群可以在一组 redis 节点之间实现高可用性和 sharding。在集群中会有 1 个 master 和多个 slave 节点。当 master 节点失...
单位设置 配置文件units单位对大小写不敏感。 include(包含) 可以理解为Java的import,可以配置多个其他的配置文件在该配置下。 网络(network)及通...
watch 命令 redis使用watch命令来实现乐观锁的操作。首先,我们先来看一下单个线程情况下,加上乐观锁,正常执行事务的情况: 接下来,我们开启另一个线程,在之前的线...