大多数用到定时执行的功能都是用任务调度来做的,单身当碰到类似订餐业务/购物等这种业务就不好处理了,比如购物的订单功能,在你的订单管理中有N个订单,当订单超过十分钟未支付的时候自动释放购物车中的商品,订单失效。这种高频率的…
分类:java并发
Java基础:HashMap假死锁问题的测试、分析和总结
前言 前两天在公司的内部博客看到一个同事分享的线上服务挂掉CPU100%的文章,让我联想到HashMap在不恰当使用情况下的死循环问题,这里做个整理和总结,也顺便复习下HashMap。 直接上测试代码 由于机器配…
java 线程死锁模拟
1,关于死锁的理解 死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁 背景介绍:我们创建一个朋友类,当朋友向我们鞠躬的时候,我们也要向…
juc的Atomic
Java从JDK1.5开始提供java.util.concurrent.atomic包,方便程序员在多线程环境下,无锁的进行原子操作。 原子变量的底层使用了处理器提供的原子指令,但是不同的CPU架构可能提供的原子指令不一…
关于java线程池的一丢丢
线程池应用达到的目的 1、降低资源消耗;可以重复利用已创建的线程从而降低线程创建和销毁所带来的消耗。 2、提高响应速度;当任务到达时,不需要等线程创建就可以立即执行。 3、提高线程的可管理性;使用线程池统一分配、调优和监…
java多线程---重入锁ReentrantLock
1.定义 重入锁ReentrantLock,支持重入的锁,表示一个线程对资源的重复加锁。 2.底层实现 每个锁关联一个线程持有者和计数器,当计数器为0时表示该锁没有被任何线程持有,那么任何线程都可能获得该锁而调用相应的方…
java中可重入锁和自旋锁
1、可重入锁: 也称为递归锁,当外层函数获得该锁之后,内层递归函数仍有获取该锁的代码,结果不受影响; java中的synchronized ReentrantLock都是可重的 举例: public clas…
java 多线程同步锁的使用 三个售票窗口同时出售20张票
package Thread; /** * * 三个售票窗口同时出售20张票 *程序分析:1.票数要使用同一个静态值 *2.为保证不会出现卖出同一个票数,要java多线程同步锁。 *设计思路:1.创建一个站台类Stati…
闲聊Mysql的锁与事务和java中的锁机制
主要参考文章: https://tech.meituan.com/innodb-lock.html http://blog.csdn.net/soonfly/article/details/70238902 这篇文章主要…
Jdk1.8 JUC源码增量解析(1)-atomic-Striped64
转载自 Jdk1.8 JUC源码增量解析(1)-atomic-Striped64 功能简介: Striped64是jdk1.8提供的用于支持如Long累加器,Double累加器这样机制的基础类。 S…
聊聊高并发(四十四)解析java.util.concurrent各个组件(二十) Executors工厂类
Executor框架为了更方便使用,提供了Executors这个工厂类。通过一系列的静态工厂方法。能够高速地创建对应的Executor实例。 仅仅有一个nThreads參数的newFixedThreadPool方法会创建…
Java中实现多线程关键词整理
Java中的Runable,Callable,Future,FutureTask,ExecutorService,Excetor,Excutors,ThreadPoolExcetor在这里对这些关键词,以及它们的用法做一…