摘要:
工具类 IOUtils.copy() IOUtils.toString(): 可以将输入流转为String Files.readAllBytes(Paths.get(fileUri)) 从本地读取文件到内存。 / FileUtils.readFileToByteArray(new File(path 阅读全文
posted @ 2024-08-13 10:36
zhegeMaw
阅读(20)
评论(0)
推荐(0)
摘要:
互联网的应用场景中,为了支持高并发的请求,服务都是执行的分布式部署(相同的任务可以在集群中不同的服务器上执行)并且现在的服务容器都是支持多线程,相同的任务也可能会被同一个容器多次执行,都要求执行结果都满足幂等性的设计原则。 分布式锁,就是为了确保在分布式的环境下,相同任务只会执行成功的执行一次,后续 阅读全文
posted @ 2024-08-13 01:26
zhegeMaw
阅读(26)
评论(0)
推荐(0)
摘要:
select …… for update 是一种分布式锁,为了在查询时,避免其他用户以该表进行增、删、改等操作,造成表的不一致性。一般不加数据库锁,比较重(太底层,影响广泛),可以使用分布式锁 / sychorized / Lock。 一、例子 select status from t_goods 阅读全文
posted @ 2024-08-13 01:22
zhegeMaw
阅读(228)
评论(0)
推荐(0)
摘要:
https://tech.meituan.com/2018/11/15/java-lock.html 1、乐观锁、悲观锁 乐观锁:认为冲突不会发生,因此在访问数据时不加锁,只有在修改时才验证数据是否被修改过。 应用场景:读多写少。不加锁,可以提升性能。 问题:高并发写的场景下,会频繁失败并重试,非常 阅读全文
posted @ 2024-08-13 01:19
zhegeMaw
阅读(24)
评论(0)
推荐(0)
摘要:
1、redis自增 2、同步代码块 3、原子类 AtomicInteger LongAdder :是JDK8添加到JUC中的。它是一个线程安全的、比Atomic*系工具性能更好的"计数器"。 3.1 AtomicInteger 线程安全地并发增加数值。 3.2 LongAdder 是AtomicLo 阅读全文
posted @ 2024-08-13 01:16
zhegeMaw
阅读(47)
评论(0)
推荐(0)
摘要:
https://blog.csdn.net/manzhizhen/article/details/81413014 1、信号量Semaphore 2、线程池 3、计数器AtomicInteger 4、阻塞队列 阅读全文
posted @ 2024-08-13 01:14
zhegeMaw
阅读(14)
评论(0)
推荐(0)
摘要:
本文的数据同步问题指的是mysql与redis之间的数据一致性问题。对于主从机器之间的数据同步问题分别查看mysql/redis。 数据一致性问题 MySQL 和 Redis 通常一起使用构成缓存系统(MySQL 作为持久层,Redis 作为缓存层),这就涉及到两者之间数据同步,当遇到网络延迟、服务 阅读全文
posted @ 2024-08-13 01:14
zhegeMaw
阅读(16)
评论(0)
推荐(0)
摘要:
一、什么时候会出现线程安全问题? 无线程安全问题: 1、在单线程中不会出现线程安全问题 2、java领域的线程安全问题,通常是全局变量或静态变量引起的,若每个线程对共享变量只有读操作,一般来说该变量是线程安全的,若有写操作,则需要考虑线程安全问题。 3、当多个线程执行一个方法,方法内部的局部变量并不 阅读全文
posted @ 2024-08-13 01:00
zhegeMaw
阅读(18)
评论(0)
推荐(0)

浙公网安备 33010602011771号