
JAVA并发编程
文章平均质量分 79
VI仔爱学习
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
synchronized 和 ReentrantLock 的实现原理
两者区别synchronized 属于独占式悲观锁,是通过 JVM 隐式实现的,synchronized 只允许同一时刻只有一个线程操作资源。在 Java 中每个对象都隐式包含一个 monitor(监视器)对象,加锁的过程其实就是竞争 monitor 的过程,当线程进入字节码 monitor enter 指令之后,线程将持有 monitor 对象,执行 monitor exit 时释放 monitor 对象,当其他线程没有拿到 monitor 对象时,则需要阻塞等待获取该对象。ReentrantLoc原创 2022-03-15 02:45:00 · 758 阅读 · 0 评论 -
JAVA线程池
使用线程池的好处:降低资源消耗。java中所有的池化技术都有一个好处,就是通过复用池中的对象,降低系统资源消耗。设想一下如果我们有n多个子任务需要执行,如果我们为每个子任务都创建一个执行线程,而创建线程的过程是需要一定的系统消耗的,最后肯定会拖慢整个系统的处理速度。而通过线程池我们可以做到复用线程,任务有多个,但执行任务的线程可以通过线程池来复用,这样减少了创建线程的开销,系统资源利用率得到了提升。降低管理线程的难度。多线程环境下对线程的管理是最容易出现问题的,而线程池通过框架为我们降低了管原创 2021-06-24 11:16:52 · 286 阅读 · 0 评论 -
项目中三级缓存设计
说明缓存主要用来减少网络IO跟磁盘IO,以此来提高系统的吞吐量。接入层缓存特点:减少磁盘IO,减少网络IO技术:lua+nginx,openresty说明:需要会写lua脚本,主要就是将信息存在Nginx缓存中,如果用户请求的信息存在则直接返回。因此哪怕后台系统挂了也能返回用户数据。本地缓存特点:减少网络IO技术:谷歌的guava/cacheCacheBuilder.newBuilder() //设置本地缓存容器的初始容量 .原创 2021-06-22 17:11:50 · 701 阅读 · 0 评论 -
JAVA中的并发工具类
JDK的并发包里提供了几个非常有用的并发工具类:控制并发线程数的Semaphore等待多线程完成的CountDownLatch同步屏障CyclicBarrierSemaphore1. 是什么Semaphore 字面意思是信号量的意思,它的作用是控制访问特定资源的线程数目,底层依赖AQS的状态State,是在生产当中比较常用的一个工具类。2.怎么用2.1构造方法 public Semaphore(int permits) public Semaphore(int permits, bo原创 2020-08-20 22:31:25 · 194 阅读 · 0 评论