Wesley13 Wesley13
3年前
java 线程篇 之CyclicBarrier、CountDownLatch、Semaphore
java提供了很多控制线程到达某一状态导致之前阻塞线程运行的函数,这些在控制任务执行提供了很大的便利,比如在zookper使用Semaphore实现分布式锁1、CountDownLatchcountDownLatch提供await(),CountDownLatch()来控制,前面我很多例子,使用这个来模拟多线程运行的,所以这里不过多介绍2
Wesley13 Wesley13
3年前
java 多线程同步锁的使用 三个售票窗口同时出售20张票
packageThread;/三个售票窗口同时出售20张票程序分析:1.票数要使用同一个静态值2.为保证不会出现卖出同一个票数,要java多线程同步锁。设计思路:1.创建一个站台类Station,继承Thread,重写run方法,在run方法里面执行售票操作
Easter79 Easter79
3年前
springCloud集成zookeper
最近梳理springboot相关知识。看到分布式锁,其中有一种是使用zookeeper实现的,就学习一下zookeeper。本来是使用springboot和zookeeper集成的,但是试了半天,好像不行。pom文件一直冲突。无奈,参考  https://start.spring.io/,生成了一个小的demo,发现该demo是使用springcloud,
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多线程
wait()方法方法wait()的作用是使当前执行代码的线程进行等待,wait()方法是Object类的方法,该方法用来将当前线程置入“预执行队列”中,并且在wait()所在的代码行处停止执行,直到接到通知或被中断为止。注意:  在调用wait()之前,线程必须获得该对象的对象级别锁,否则会抛出illegal
Wesley13 Wesley13
3年前
Java中的AQS到底是什么?高级面试必问!
前言JDK1.5以前只有synchronized同步锁,并且效率非常低,因此大神DougLea自己写了一套并发框架,这套框架的核心就在于AbstractQueuedSynchronizer类(即AQS),性能非常高,所以被引入JDK包中,即JUC。那么AQS是怎么实现的呢?本篇就是对AQS及其相关组件进行分析,了解其原理,并
线上SQL超时场景分析-MySQL超时之间隙锁 | 京东物流技术团队
前言之前遇到过一个由MySQL间隙锁引发线上sql执行超时的场景,记录一下。背景说明分布式事务消息表:业务上使用消息表的方式,依赖本地事务,实现了一套分布式事务方案消息表名:mqmessages数据量:3000多万索引:createtime和statuss