JVM
凌麟柒
让我从坑里。。。爬出来!
展开
-
读写锁及锁降级
看完了《Java并发编程的艺术》后,感觉对锁这一快好像有了一个大概念的体系了。但是细节上可能还是有些不清楚,这里对读写锁做一个学习的记录常见的业务场景都是读多写少,对于读写锁来说,其允许多个线程同时进行读操作,单手只能有一个线程进行写操作,且这个写操作不能喝读操作同时进行。写锁的解锁会自己完成其他线程的可见。如果要在Java5前实现这一功能,只能通过synchronized的等待通知机制。比较...原创 2020-05-04 23:04:22 · 990 阅读 · 0 评论 -
在刷新微信公众号accessToken中使用读写锁
背景:微信公众号的accessToken是有过期时间的,文档写是2个小时,我们可以通过指定api去刷新accessToken,但是有一点是,如果刷新了accessToken,那么原来的accessToken将会变得不可用,这就可能出现用一个不可用的accessToken来进行请求返回错误。一般的做法是使用Redis作为全局缓存,存入有过期时间的key,然后定时去刷新这个Redis以及key过期...原创 2020-05-04 22:52:06 · 615 阅读 · 0 评论 -
Java中的常见的锁及其内存语义
为什么会有锁?为什么Java会有锁,这要从Java的内存模型讲起:大家都知道Java是个多线程语言,这句话的意思是一个Java进程可以创建多个线程来执行指令。对于可并发的编程语言,要怎么做到线程之间是如何通信的,以及线程间是如何同步的?在命令式编程中,通信机制一般有两种,共享内存和消息传递共享内存是一种隐式通信,通过访问一个公共的内存区域,来达到线程间数据交互的作用。消息传递是一种显...原创 2020-05-04 22:46:28 · 398 阅读 · 0 评论