Wesley13 Wesley13
3年前
java 线程篇 之CyclicBarrier、CountDownLatch、Semaphore
java提供了很多控制线程到达某一状态导致之前阻塞线程运行的函数,这些在控制任务执行提供了很大的便利,比如在zookper使用Semaphore实现分布式锁1、CountDownLatchcountDownLatch提供await(),CountDownLatch()来控制,前面我很多例子,使用这个来模拟多线程运行的,所以这里不过多介绍2
Wesley13 Wesley13
3年前
java wait方法
wait方法是让当前线程等待,这里的当前线程不是指t,而是主线程。wait会释放锁,等到其他线程调用notify方法时再继续运行。可以看下面的例子。!复制代码(https://oscimg.oschina.net/oscnet/224d9647687662c8b42e4eba0095746fe95.gif)1packagecom
Gwendolyn62 Gwendolyn62
3年前
数据库常见面试题汇总
阅读指南文章目录1.事务四大特性(about:blank1_4)2.数据库隔离级别(about:blank2_12)3.MYSQL的两种存储引擎区别(事务、锁级别等等),各自的适用场景(about:blank3MYSQL_27)4.索引有B索引和hash索引(about:b
Wesley13 Wesley13
3年前
C++原子类实现
引言在系统实现的过程中,经常需要用到计数功能,为了多线程下的安全使用,我自己定义了一个原子类。基于Mutex的实现我基于Mutex实现了一个简单的原子类,代码如下/说明:自定义整数操作的原子类,减少代码中的各种锁/ifndef_ATOMIC_INT64
Wesley13 Wesley13
3年前
Java并发(5)
引言在synchronized未优化之前,我们在编码中使用最多的同步工具类应该是ReentrantLock类,ReentrantLock拥有优化后synchronized关键字的性能,又提供了更多的灵活性。相比synchronized,他在功能上更加强大,具有等待可中断,公平锁以及绑定多个条件等synchronized不具备
Wesley13 Wesley13
3年前
Java中的AQS到底是什么?高级面试必问!
前言JDK1.5以前只有synchronized同步锁,并且效率非常低,因此大神DougLea自己写了一套并发框架,这套框架的核心就在于AbstractQueuedSynchronizer类(即AQS),性能非常高,所以被引入JDK包中,即JUC。那么AQS是怎么实现的呢?本篇就是对AQS及其相关组件进行分析,了解其原理,并
Wesley13 Wesley13
3年前
Java并发编程之ConcurrentHashMap
ConcurrentHashMapConcurrentHashMap是一个线程安全的HashTable,它的主要功能是提供了一组和HashTable功能相同但是线程安全的方法。ConcurrentHashMap可以做到读取数据不加锁,并且其内部的结构可以让其在进行写操作的时候能够将锁的粒度保持地尽量地小,不用对整个ConcurrentHashM
Stella981 Stella981
3年前
Quartz依赖数据库表
Quartz的集群部署方案在架构上是分布式的,没有负责集中管理的节点,而是利用数据库锁的方式来实现集群环境下进行并发控制。BTW,分布式部署时需要保证各个节点的系统时间一致。Quartz数据库核心表如下:tabledescriptionQRTZ\_CALENDARS存储Quartz的Calendar信息QRTZ\_CR
Wesley13 Wesley13
3年前
Java锁事之Unsafe、CAS、AQS知识点总结
!(https://oscimg.oschina.net/oscnet/e14679ca0bdd2b95aa5869200e6bbaefff2.gif)关注“Java艺术”一起来充电吧!Unsafe、CAS、AQS是我们了解Java中除synchronized之外的锁必须要掌握的重要知识点。CAS是一个比较和替换的原子操作,AQS的实现
京东云开发者 京东云开发者
11个月前
线上SQL超时场景分析-MySQL超时之间隙锁 | 京东物流技术团队
前言之前遇到过一个由MySQL间隙锁引发线上sql执行超时的场景,记录一下。背景说明分布式事务消息表:业务上使用消息表的方式,依赖本地事务,实现了一套分布式事务方案消息表名:mqmessages数据量:3000多万索引:createtime和statuss