随笔分类 -  lock

1 2 下一页
锁、同步
MongoDB中的读写锁
摘要:1. MongoDB 使用的锁 MongoDB 使用的是“readers-writer”锁, 可以支持并发但有很大的局限性当一个读锁存在,许多读操作可以使用这把锁,然而, 当一个写锁的存在,一个单一的写操作会”exclusively“持有该锁,同一时间其它写操作不能使用共享这个锁;举个例子,假设一个 阅读全文
posted @ 2019-04-19 17:53 duanxz 阅读(9920) 评论(0) 推荐(1) 编辑
服务注册发现consul之四: 分布式锁之四:基于Consul的KV存储和分布式信号量实现分布式锁
摘要:一、基于key/value实现 我们在构建分布式系统的时候,经常需要控制对共享资源的互斥访问。这个时候我们就涉及到分布式锁(也称为全局锁)的实现,基于目前的各种工具,我们已经有了大量的实现方式,比如:基于Redis的实现、基于Zookeeper的实现。本文将介绍一种基于Consul 的Key/Val 阅读全文
posted @ 2017-06-17 18:15 duanxz 阅读(5734) 评论(0) 推荐(0) 编辑
NIO文件锁FileLock
摘要:目录 《linux文件锁flock》 《NIO文件锁FileLock》 《java程序怎么在一个电脑上只启动一次,只开一个进程》 文件锁可以是shared(共享锁)或者exclusive(排他锁)。不是所有的平台都以同一种方式实现文件锁,不同的操作系统可能不同,同一操作系统上的不同文件系统也可能不同 阅读全文
posted @ 2017-04-28 18:11 duanxz 阅读(1693) 评论(0) 推荐(0) 编辑
可重入锁
摘要:锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized 和 ReentrantLock等等 ) 。这些已经写好提供的锁为我们开发提供了便利,但是锁的具体性质以及类型却很少被提及。 四、可重入锁: 本文里面讲的是广义上的可重入锁,而不是单指JAVA下的Reentr 阅读全文
posted @ 2017-04-13 20:30 duanxz 阅读(1105) 评论(0) 推荐(0) 编辑
可重入锁 公平锁 读写锁、CLH队列、CLH队列锁、自旋锁、排队自旋锁、MCS锁、CLH锁
摘要:1.可重入锁 如果锁具备可重入性,则称作为可重入锁。 (转)可重入和不可重入 2011-10-04 21:38 这种情况出现在多任务系统当中,在任务执行期间捕捉到信号并对其进行处理时,进程正在执行的指令序列就被信号处理程序临时中断。如果从信号处理程序返回,则继续执行进程断点处的正常指令序列,从重新恢 阅读全文
posted @ 2017-01-03 10:44 duanxz 阅读(3366) 评论(0) 推荐(0) 编辑
命令查看java的class字节码文件、verbose、synchronize、javac、javap,查看汇编命令
摘要:一、javac命令 1 javac –verbose查看运行类是加载了那些jar文件 HelloWorld演示: public class Test { public static void main(String[] args) { Object lock = new Object(); sync 阅读全文
posted @ 2016-11-15 17:48 duanxz 阅读(1342) 评论(0) 推荐(0) 编辑
Java多线程系列--“JUC锁”11之 Semaphore信号量的原理
摘要:一、Semaphore简介 Semaphore是一个计数信号量,它的本质是一个"共享锁",是基于AQS实现的,通过state变量来实现共享。通过调用acquire方法,对state值减去一,当调用release的时候,对state值加一。当state变量小于0的时候,在AQS队列中阻塞等待。 信号量 阅读全文
posted @ 2016-11-14 22:15 duanxz 阅读(1058) 评论(0) 推荐(0) 编辑
Java多线程系列--“JUC锁”10之 CyclicBarrier原理和示例
摘要:CyclicBarrier简介 CyclicBarrier是一个同步辅助类,CyclicBarrier,就是一个计数器栅栏,也就是一个计数器开关。允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。因为该 barrier 在释放等待线程后可以重用,所以称它为循 阅读全文
posted @ 2016-11-14 22:14 duanxz 阅读(554) 评论(0) 推荐(0) 编辑
Java多线程系列--“JUC锁”09之 CountDownLatch原理和示例
摘要:概要 前面对"独占锁"和"共享锁"有了个大致的了解;和ReadWriteLock.ReadLock一样,CountDownLatch的本质也是一个"共享锁"。 CountDownLatch简介 CountDownLatch是一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程 阅读全文
posted @ 2016-11-14 22:13 duanxz 阅读(546) 评论(0) 推荐(1) 编辑
Java多线程系列--“JUC锁”08之 共享锁和ReentrantReadWriteLock
摘要:ReadWriteLock 和 ReentrantReadWriteLock介绍 ReadWriteLock,顾名思义,是读写锁。它维护了一对相关的锁 — — “读取锁”和“写入锁”,一个用于读取操作,另一个用于写入操作。“读取锁”用于只读操作,它是“共享锁”,能同时被多个线程获取。“写入锁”用于写 阅读全文
posted @ 2016-11-14 22:13 duanxz 阅读(568) 评论(0) 推荐(0) 编辑
Java多线程系列--AQS之 LockSupport
摘要:concurrent包是基于AQS (AbstractQueuedSynchronizer)框架的,AQS(JAVA CAS原理、unsafe、AQS)框架借助于两个类: Unsafe(提供CAS操作) 《AQS之:Unsafe(java可直接操作内存(),挂起与恢复,CAS操作)》 LockSup 阅读全文
posted @ 2016-11-14 22:12 duanxz 阅读(1380) 评论(0) 推荐(0) 编辑
Java多线程系列--“JUC锁”05之 非公平锁
摘要:概要 前面两章分析了"公平锁的获取和释放机制",这一章开始对“非公平锁”的获取锁/释放锁的过程进行分析。内容包括:参考代码获取非公平锁(基于JDK1.7.0_40)释放非公平锁(基于JDK1.7.0_40)关于锁的数据结构请参考"Java多线程系列--“JUC锁”03之 公平锁(一) ",锁的使用示 阅读全文
posted @ 2016-11-14 22:11 duanxz 阅读(464) 评论(0) 推荐(0) 编辑
Java多线程系列--“JUC锁”06之 Condition条件
摘要:Condition介绍 Condition的作用是对锁进行更精确的控制。Condition中的await()方法相当于Object的wait()方法,Condition中的signal()方法相当于Object的notify()方法,Condition中的signalAll()相当于Object的n 阅读全文
posted @ 2016-11-14 22:11 duanxz 阅读(460) 评论(0) 推荐(1) 编辑
Java多线程系列--“JUC锁”04之 公平锁(二)
摘要:概要 前面一章,我们学习了“公平锁”获取锁的详细流程;这里,我们再来看看“公平锁”释放锁的过程。内容包括:参考代码释放公平锁(基于JDK1.7.0_40) “公平锁”的获取过程请参考“Java多线程系列--“JUC锁”03之 公平锁(一)”,锁的使用示例请参考“Java多线程系列--“JUC锁”02 阅读全文
posted @ 2016-11-14 22:09 duanxz 阅读(493) 评论(0) 推荐(0) 编辑
Java多线程系列--“JUC锁”03之 公平锁(一)
摘要:概要 本章对“公平锁”的获取锁机制进行介绍(本文的公平锁指的是互斥锁的公平锁),内容包括:基本概念ReentrantLock数据结构参考代码获取公平锁(基于JDK1.7.0_40) 一. tryAcquire() 二. addWaiter() 三. acquireQueued() 四. selfIn 阅读全文
posted @ 2016-11-14 22:08 duanxz 阅读(543) 评论(0) 推荐(0) 编辑
Java多线程系列--“JUC锁”02之 互斥锁ReentrantLock
摘要:ReentrantLock介绍 ReentrantLock是一个可重入的互斥锁,又被称为“独占锁”。 顾名思义,ReentrantLock锁在同一个时间点只能被一个线程锁持有;而可重入的意思是,ReentrantLock锁,可以被单个线程多次获取。ReentrantLock分为“公平锁”和“非公平锁 阅读全文
posted @ 2016-11-14 22:07 duanxz 阅读(662) 评论(0) 推荐(2) 编辑
Java多线程系列--“JUC锁”01之 框架
摘要:本章,我们介绍锁的架构;后面的章节将会对它们逐个进行分析介绍。目录如下:01. Java多线程系列--“JUC锁”01之 框架02. Java多线程系列--“JUC锁”02之 互斥锁ReentrantLock03. Java多线程系列--“JUC锁”03之 公平锁(一)04. Java多线程系列-- 阅读全文
posted @ 2016-11-11 17:35 duanxz 阅读(700) 评论(0) 推荐(1) 编辑
java程序怎么在一个电脑上只启动一次,只开一个进程
摘要:目录 《linux文件锁flock》 《NIO文件锁FileLock》 《java程序怎么在一个电脑上只启动一次,只开一个进程》 方案1: 单进程程序可以用端口绑定。程序启动的时候可以尝试看该端口是否已经被占用,如果占用则程序已经启动。 方案2:你可以在java程序中创建一个隐藏文件,程序退出的时候 阅读全文
posted @ 2015-12-04 15:46 duanxz 阅读(2282) 评论(0) 推荐(0) 编辑
java对象在内存中的结构(HotSpot虚拟机)
摘要:一、对象的内存布局 HotSpot虚拟机中,对象在内存中存储的布局可以分为三块区域:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)。 32位: 64位: 从上面的这张图里面可以看出,对象在内存中的结构主要包含以下几个部分: 对象头: Mark Word(标 阅读全文
posted @ 2015-11-15 18:45 duanxz 阅读(19692) 评论(7) 推荐(7) 编辑
Synchronized之一:基本使用
摘要:目录: 《Java并发编程之三:volatile关键字解析 转载》 《volatile之一--volatile不能保证原子性》 《Synchronized之一:基本使用》 Synchronized作用 1、Synchronized可以保证在同一时刻,只有一个线程可以执行某一个方法或者代码块。 2、同 阅读全文
posted @ 2015-08-21 09:32 duanxz 阅读(2079) 评论(1) 推荐(0) 编辑

1 2 下一页