分布式锁原理 分布式锁,是控制分布式系统之间同步访问共享资源的一种方式。在分布式系统中,常常需要协调他们的动作。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰来保证一致性,在这种情况下,便需要使用到分布式锁。 使用setnx、get ...
分类:
其他好文 时间:
2019-06-23 20:51:59
阅读次数:
95
AQS定义了一套多线程访问共享资源的同步器框架. 许多同步类实现都依赖于它,如常用的ReentrantLock/ReentrantReadWriterLock/CountDownLatch这些类里面都维护了一套aqs的子类,利用子类实现的功能。该队列里面维护的是一堆线程节点。核心思想是当前线程获取锁 ...
分类:
其他好文 时间:
2019-06-23 19:26:46
阅读次数:
74
一、理解单例模式 确保类有且只有一个特定类型的对象,并提供全局访问点,单例模式通常用于下列情形,例如日志记录或数据库操作等,避免对同一资源请求的相互冲突。 单例的模式的意图如下: 确保类有且只有一个对象被创建。 为对象提供一个访问点,以使程序可以全局访问该对象。 控制共享资源的并行访问。 实现单例模 ...
分类:
其他好文 时间:
2019-06-23 14:04:30
阅读次数:
109
NFS:network file system 一、NFS服务介绍 NFS 是 Network FileSystem 的缩写,顾名思义就是网络文件存储系统,它最早是由 Sun 公司发展出来的,也是 FreeBSD 支持的文件系统中的一个,它允许网络中的计算机之间通过 TCP/IP 网络共享资源。通过 ...
分类:
其他好文 时间:
2019-06-22 21:17:52
阅读次数:
118
Semaphore信号量如何利用AQS实现对共享资源限制最大访问量~~~~
分类:
编程语言 时间:
2019-06-20 21:19:25
阅读次数:
149
首先我们需要知道的是:锁可以分为公平锁和不公平锁,重入锁和非重入锁; 一、Lock接口 Lock是java 1.5中引入的线程同步工具,它主要用于多线程下共享资源的控制。本质上Lock仅仅是一个接口(位于源码包中的java\util\concurrent\locks中), Lock有三个实现类,一个 ...
分类:
其他好文 时间:
2019-06-19 23:17:02
阅读次数:
156
AQS原理-CountDownLatch基于AQS的state如何实现共享资源
分类:
编程语言 时间:
2019-06-19 13:34:43
阅读次数:
151
FreeRTOS信号量 信号量是操作系统总重要的一部分,信号量一般用来进行资源管理和任务同步,FreeRTOS中信号量又分为二值信号量、计数型信号量、互斥信号量和递归互斥信号量。不同的信号量其应用场景不同,但是有些场景是可以互换着使用的。 信号量简介 信号量常常用于控制对共享资源的访问和任务同步。举 ...
分类:
其他好文 时间:
2019-06-16 15:36:19
阅读次数:
97
Redis分布式锁 1、锁场景 需要对同一共享资源进行写操作 对资源的访问是互斥的 任务通过竞争获取锁才能才能对该资源进行操作(竞争锁) 当有一个任务对资源进行操作时(占有锁) 其他任务不能对该资源进行操作(任务阻塞) 直到该任务操作结束(释放锁) 竞争锁 占有锁 任务阻塞 释放锁 graph LR ...
分类:
其他好文 时间:
2019-06-16 09:28:12
阅读次数:
81
并发性:互斥和同步 基本概念 原子操作:一个函数或动作由一个或多个指令的序列实现,对外是不可见的;保证指令的序列要么作为一个组执行, 要么都不执行,对系统状态没有可见的影响。保证了并发的隔离。 临界区:一段代码,在这段代码中进程将访问共享资源,当另一个进程已经在这段代码中运行时,这个进程就不能在这段 ...
分类:
其他好文 时间:
2019-06-15 15:10:12
阅读次数:
105