包含的元素:gate,user,and client,其中客户端可以去创建门和人,门是需要给人共享的数据 门 问题:以上的功能,在多线程的情况下,姓名和地址不回应,这是因为多个线程去同时访问同一资源gate而造成的 解决方法: 读写锁分离 ...
分类:
编程语言 时间:
2019-11-17 15:07:49
阅读次数:
81
本文主要讲解go语言web编程中自定义路由器的设计。在此之前需要先了解一下go语言web编程中路由与http服务的基本原理,可以参考笔者另一篇博文:go web编程——路由与http服务 。 我们已经知道,go的默认路由器只支持路由绝对匹配,无法支持正则匹配,这样就没办法设计一些简洁、优雅的路由。那 ...
分类:
Web程序 时间:
2019-11-14 17:59:06
阅读次数:
89
本文基于 "https://github.com/h2pl/Java Tutorial" 的总结 ReentrantReadWriteLock(读写锁)源码分析 "BlockingQueu 阻塞队列" ArrayBlockingQueue(数组。有界) LinkedBlockingQueue(链表。 ...
分类:
编程语言 时间:
2019-11-10 14:00:04
阅读次数:
89
1、悲观锁? 悲观锁顾名思义就是很悲观,悲观锁认为数据随时就有可能会被外界进行修改,所以悲观锁一上来就会把数据给加上锁。悲观锁一般都是依靠关系型数据库提供的锁机制,然而事实上关系型数据库中的行锁,表锁不论是读写锁都是悲观锁。 2、乐观锁? 乐观锁顾名思义,就是很乐观,每次自己操作数据的时候认为没有人 ...
分类:
数据库 时间:
2019-11-09 00:32:43
阅读次数:
111
Lock读写锁机制可以实现! 在Java中Lock接口比synchronized块的优势是什么? Lock接口最大的优势是为读和写分别提供了锁。 1 import java.text.SimpleDateFormat; 2 import java.util.Date; 3 import java.u ...
分类:
其他好文 时间:
2019-11-08 10:47:21
阅读次数:
156
欢×××”,查看更多源码系列文章,与彤哥一起畅游源码的海洋。(手机横屏看源码更方便)简介同步系列到此就结束了,本篇文章对同步系列做一个总结。脑图下面是关于同步系列的一份脑图,列举了主要的知识点和问题点,看过本系列文章的同学可以根据脑图自行回顾所学的内容,也可以作为面试前的准备。如果有需要原图的同学,×××”,回复“sync”领取。总结所谓同步,就是
分类:
编程语言 时间:
2019-11-05 09:38:48
阅读次数:
89
并发控制 1. 读写锁 2. 锁粒度 读写锁 1. 共享锁 (读锁) 2. 排它锁 (写锁) 读锁是共享的,或者说是相互不阻塞的。多个客户在同一时刻可以同时读取同一个资源,而互不干扰。 写锁则是排他的,也就是说一个写锁会阻塞其他的写锁和读锁,这是出于安全策略的考虑,只有这样,才能确保在给定的时间里, ...
分类:
数据库 时间:
2019-11-04 13:09:04
阅读次数:
82
ReadWriteLock: 读写锁 ReadWriteLock: JDK1.5提供的读写分离锁,采用读写锁分离可以有效帮助减少锁竞争。 特点: 1).使用读写锁。当线程只进行读操作时,可以允许多个线程同时读 2).写写操作,读写操作间依然需要相互等待和持有锁。 一).使用读写锁与使用重入锁进行读读 ...
分类:
其他好文 时间:
2019-10-30 10:29:15
阅读次数:
80
管程和信号量这两个同步原语在 Java 语言中的实现,理论上用这两个同步原语中任何一个都可以解决所有的并发问题。那 Java SDK 并发包里为什么还有很多其他的工具类呢?原因很简单:分场景优化性能,提升易用性。 其中有个非常普遍的并发场景:读多写少场景。实际工作中,为了优化性能,我们经常会使用缓存 ...
分类:
其他好文 时间:
2019-10-25 13:42:22
阅读次数:
119
互斥锁 互斥锁的特性: 1. 原子性:当有一个线程成功拿到了这个锁,其他线程都无法在相同的时间拿到这个锁 2. 唯一性:在一个线程拿到锁的这段时间,只有当这个线程把锁释放掉,其他的线程才有可能拿到 3. 非繁忙等待性:如果一个线程已经锁定了一个互斥量,第二个线程又视图去拿到这个锁的前线,则第二个锁将 ...
分类:
其他好文 时间:
2019-10-15 21:21:06
阅读次数:
124