自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 资源 (1)
  • 收藏
  • 关注

原创 死锁定位

死锁产生死锁是指两个或两个以上

2019-12-30 19:39:18 146

原创 线程池使用和介绍

API使用和介绍newFixedThreadPool适合场景:执行长期的任务,性能好很多底层都是ThreadPoolExecutor,其中阻塞队列可以看我的阻塞队列文章.1、创建一个定长线程池,可控制线程最大并发数,超过的线程会在队列中等待。2、newFixedThreadPool创建的线程池corePoolSize和maximumPoolSize值是想等的,它使用的LinkedBlo...

2019-12-28 19:41:07 164

原创 JAVA并发包阻塞版线程通讯生产消费者模式例子

前面有我写了个“传统生产消费者模式例子” 传统版需要自己控制等待,唤醒等操作细节同时需要兼顾效率和线程安全,而并发包下的BlockingQueue我们不需要关心什么时候需要阻塞线程,什么时候需要唤醒线程,因为这一切BlockingQueue都给一手包办了。本例子所涉及到的知识点volatile/CAS/AtomicInteger/BlockQueue/线程交互/原子引用,需要了解详情可以看下我单...

2019-12-22 20:26:37 100

原创 Synchronized和Lock区别详解

1构成Synchronized是关键字属于JVM层面。Lock是具体类(java.util.concurrent.locks.Lock)是API层面的锁。2使用方法Synchronized不需要用户去手动释放锁,当Synchronized代码执行完后系统会自动让线程释放对锁的占用。ReentrantLock则需要用户去手动释放锁若没有主动释放锁,就有可能导致出现死锁现象。需要lock()和...

2019-12-22 15:47:45 138

原创 传统生产消费者模式例子

传统生产消费者模式例子这里写的是传统版还有一版是阻塞队列版,这里的例子可以和阻塞队列版对比。下面我们来做一道小需求题“一个初始值为零的变量,两个线程对其交替操作,一个加1一个减1,执行5次”。代码如下:import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java...

2019-12-20 22:20:43 122

原创 SynchronousQueue 同步队列介绍

SynchronousQueue 同步队列SynchronousQueue 没有容量,不存储元素的阻塞队列,也即单个元素的队列,每一个put操作必须要等待一个take操作,否则不能继续添加元素,反之亦然。代码演示如下import java.util.concurrent.BlockingQueue;import java.util.concurrent.SynchronousQueue;...

2019-12-20 18:39:16 314

原创 ArrayBlockingQueue 阻塞队列介绍

阻塞队列,阻塞队列在数据结构中如图:线程1往阻塞队列添加元素,而线程2从阻塞队列中移除元素,当阻塞队列是空时,从队列中获取元素操作将会被阻塞。...

2019-12-20 16:00:46 300

原创 Semaphore使用场景和详解

Semaphore 信号量主要用于两个目的,一个是用于多个共享资源的互斥使用,另一个用于并发线程数量的控制。下面我们模拟高并发多个资源对多个资源,假设有3个车位,有六台车子抢占车位如何操作,代码如下:import java.util.concurrent.Semaphore;import java.util.concurrent.TimeUnit;public class Semapho...

2019-12-16 20:24:27 1365

原创 CyclicBarrier使用场景

CyclicBarrierCyclicBarrier的字面意思是可循环(Cyclic)使用的屏障(Barrier),它要做的事情是,让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续干活,线程进入屏障通过CyclicBarrier的await()方法。白话讲CountDownLatch是减法倒计时,CyclicBarrier...

2019-12-16 15:10:32 537 3

原创 Enum使用场景及技巧

Enum运用这里只介绍enum的使用场景和技巧。例子秦国灭六国废话不多说上代码:import lombok.Getter;public enum EnumDemo { ONE(1,"齐"),TWO(2,"楚"),THREE(3,"燕"),FOUR(4,"赵"),FIVE(5,"魏"),SIX(6,"韩"); @Getter private Integer retCode...

2019-12-16 11:21:06 1168

原创 CountDownLatch使用

CountDownLatch 使用场景CountDownLatch 倒记时器 过多介绍就不描述了,这里只描述使用场景。首先有个需求,教室里有7个人,上完课后陆续离开回家,班长负责最后关窗锁门。我们来用代码实现下public class CountDownLatchDemo { public static void main(String[] args) { //模拟...

2019-12-16 11:12:49 96

原创 java ReentrantLock,synchronized,spinlock,ReentrantReadWriteLock使用介绍

公平和非公平锁

2019-12-15 11:28:25 175

原创 java集合ArrayList,set,map为什么不安全详解

java集合中,ArrayList,HashSet,HashMap线程不安全详细介绍。

2019-12-06 22:44:10 184

原创 CAS详解

什么是CAS

2019-12-05 22:11:49 154

原创 IDEA常用快捷键

IDEACTRL+D 复制一行数据Ctrl + Alt + M 抽取方法Ctrl+Alt+L 格式化

2019-12-02 19:36:26 139

原创 Volatile详解

java Volatile详细介绍

2019-12-02 19:31:45 328

leftTime.js倒计时插件

网页时间倒计时使用,具体使用方法查看当前博文

2022-09-23

popper.min.js

bootstrap4所需的popper.js,这个是popper.min.js是编译后的。

2018-06-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除