背景:有个需求,后端在一个时间点要向前端发送websocket消息,前端点击确认作出应答。为防止用户错误点击或页面刷新消息丢失,需要后端在5分钟内判断应答状态,如果5分钟内没有应答,则每隔10秒向前端推送一次,5分钟内应答了或者超过了5分钟,后端结束推送。这是一个很简单的需求,起个线程,在5分钟之内
前段时间做项目,有一个场景是在后端接收到信号的时候将消息推送给前端,前端在展示给用户。就是后端主动向前端推送消息的功能。这样的场景可以让前端轮询,但是因为消息比较多,比较频繁,所以如果让前端轮询的话,就有可能实时性不太好,而且由于http协议的请求头比较长,进行轮询会浪费大量的带宽,服务器的压力也会
听说这是工作中常用的方式,咱也不知道,学着玩呗。
七、异步编排1、创建异步对象2、计算完成时回调方法whenComplete可以处理正常和异常的计算结果,exceptionally处理异常情况。whenComplete和whenCompleteAsync的区别:whenComplete:是执行当前任务的线程继续执行whenComplete任务whe
一、事务的概念对一组操作而言,要么全部成功,要么全部失败,就叫做事务。01 特性原子性(Atomicity):一个事务中的所有操作,要么全部成功,要么全部失败,如果中间发生异常,则全部回滚一致性(Consistency):在事务开始之前和事务结束以后,数据库的完整性没有被破坏隔离性(Isolatio
ThreadLocal初衷是在线程并发时解决变量共享问题,但由于过度设计,比如弱引用和哈希碰撞,导致理解难度大、使用成本高,反而成为了故障高发点。容易出现内存泄漏、脏数据、共享对象更新等问题。01引用类型强引用:Object obj = new Object();这就属于强引用。只要对象有强引用,并
LockSupportpackage com.fzkj.juc.locksupport;import java.util.concurrent.locks.LockSupport;/** * @DESCRIPTION */public class LockSupportDemo { /**
一、公平锁/非公平锁公平锁在并发环境下,每个线程在获取锁时会先查看此锁维护的等待队列,如果为空,或者当前线程是等待队列的第一个,就占有锁,否则就会加入等待队列,然后按照FIFO的规则进行等待。非公平锁一上来就获取锁,如果失败,再采用公平锁的方式。二、可重入锁/递归锁这两个锁其实是一个锁的两种叫法,本
一、ArrayList集合1、现象 /** * 1、可能会抛出 * java.util.ConcurrentModificationException(并发修改异常) * 2、导致原因 * * 3、解决方案 * @param */
volatile是java虚拟机提供的一种轻量级的同步机制,它有三个重要的特性:保证可见性不保证原子性禁止指令重排要理解这三个特性,就需要对JMM(JAVA内存模型)有一定的了解才行。一、JMM(JAVA内存模型)JMM是 Java 虚拟机规范中所定义的一种内存模型,Java 内存模型是标准化的,屏