自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

LLY的博客

每天进步一点点,持之以恒。

  • 博客(23)
  • 问答 (1)
  • 收藏
  • 关注

原创 Ctrl+c,Ctrl+z在Linux中区别

Ctrl+c和ctrl+z都是中断命令,但是他们的作用却不一样。Ctrl+c是强制中断程序的执行。Ctrl+z的是将任务中断,但是此任务并没有结束,他仍然在进程中他只是维持挂起的状态。Ctrl+d 不是发送信号,而是表示一个特殊的二进制值,表示 EOF。...

2021-05-31 10:51:47 288

原创 mongodb存储引擎调研

mongodb存储引擎调研MongoDB4.0版本,有3种存储引擎1.WiredTiger存储引擎(默认)2.内存存储引擎3.MMAPv1存储引擎 (MongoDB 4.0开始弃用)MongoDB4.2版本,有2种存储引擎,从4.2版本移除MMAPv1存储引擎1.WiredTiger存储引擎(默认)2.内存存储引擎目前最新版本是4.4,2020年7月份发布的目前开发环境用的4.0版本,不影响使用,是否可以升级到4.4版本,这个只是做个建议,不做强制要求。基于WiredT

2021-04-28 09:11:00 260

原创 本地镜像发布到阿里云

本地镜像发布到阿里云访问https://cr.console.aliyun.com/cn-hangzhou/instances进入阿里云容器镜像服务界面,这里我用的个人版的,自己测试玩一下的。创建命名空间创建镜像仓库查询镜像仓库详情,下面的步骤需要使用里面的命令在终端里面登录阿里云镜像仓库docker login --username=你的用户名 registry.cn-hangzhou.aliyuncs.com这里的–username为你自己的用户名

2021-04-11 11:00:50 161

原创 通过Callable接口实现多线程

通过Callable接口实现多线程import java.util.concurrent.Callable;import java.util.concurrent.FutureTask;class MyThread implements Callable<Integer> { @Override public Integer call() throws Exception { System.out.println(Thread.currentThread

2021-02-09 16:31:39 122

原创 java死锁编码及定位分析

java死锁编码及定位分析什么是死锁死锁是指两个或两个以上的线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力干涉那它们都将无法推进下去。如果系统资源充足,线程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。自己写一个死锁import java.util.concurrent.TimeUnit;class DeadLockThread implements Runnable { private String lockA; pr

2021-02-09 10:52:29 95

原创 java线程池详解

java线程池详解七大参数四种拒绝策略类型描述AbortPolicy直接抛出RejectedException异常阻止系统正常运行CallerRunsPolicy”调用者运行”一种调节机制,该策略既不会抛弃任务,也不会抛出异常,而是将某些任务回退到调用者,从而降低新任务的流量。DiscardOldestPolicy抛弃队列中等待最久对的任务,然后把当前任务加入队列中尝试再次提交当前任务。DiscardPolicy直接丢弃任务,不予任何处理也不抛出异常,如

2021-02-08 16:58:45 91 1

原创 手写生产者消费者模式

手写生产者消费者模式简述利用volatile+CAS+BlockingQueue,写一个简单版生产者消费者Demo。参考尚硅谷阳哥的视频,感谢大佬!实践package com.lly.test;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.BlockingQueue;import java.util.concurrent.TimeUnit;import java.util.concur

2021-02-05 17:32:20 142

原创 BlockingQueue之常用类型Demo

BlockingQueue之常用类型Demo七大类型的Demo用法是我自己在学习的时候写的笔记,仅供参考。代码如下:package com.lly.test;import org.junit.jupiter.api.Test;import java.util.concurrent.*;public class BlockingQueueDemo { @Test public void test_ArrayBlockingQueue() { // 由数组结构

2021-02-05 16:53:25 260 1

原创 BlockingQueue学习

BlockingQueue学习什么是阻塞队列?线程1往阻塞队列中添加元素,而线程2从阻塞队列中移除元素。当阻塞队列是空时,从队列中获取元素的操作将会被阻塞。当阻塞队列是满时,往队列里添加元素的操作将会被阻塞。为什么用?有什么好处?在多线程领域:所谓阻塞,在某些情况下会挂起线程(即阻塞),一旦条件满足,被挂起的线程又会自动唤醒。为什么需要BlockingQueue好处是我们不需要关心什么时候需要阻塞线程,什么时候需要唤醒线程,因为这一切BlockingQueue都给你一手包办了。在conc

2021-02-04 08:57:20 2195 6

原创 Semaphore学习

Semaphore学习理论信号量主要用于两个目的,一个是用于多个共享资源的互斥使用,另一个用于并发线程数的控制。实践举例:抢车位,6辆车抢3个车位import java.util.concurrent.Semaphore;import java.util.concurrent.TimeUnit;public class SemaphoreDemo { public static void main(String[] args) { // 模拟3个停车位

2021-02-02 14:00:27 113 1

原创 ReentrantLock之Condition用法

ReentrantLock之Condition用法题目题目:多线程之前按顺序调用,实现A->B->C三个线程启动,要求如下:A打印5次,B打印10次,C打印15次紧接着A打印5次,B打印10次,C打印15次…来5轮Demopackage com.lly.test;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.ReentrantLock;/** * 线程操作资

2021-02-02 09:18:38 5701 7

原创 CyclicBarrier学习

CyclicBarrier学习理论CyclicBarrier的字面意思是可循环(Cyclic)使用的屏障(Barrier)。它要做的事情是,让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续干活,线程进入屏障通过CyclicBarrier的await()方法。实践举例:集齐7颗龙珠才能召唤神龙public class CyclicBarrierDemo { public static void main(String

2021-02-01 16:34:36 81 1

原创 CountDownLatch学习

CountDownLatch学习理论CountDownLatch主要有2个方法,当一个或多个线程调用await方法时,调用线程会被阻塞。其它线程调用countDown方法会将计数器减1(调用countDown方法的线程不会阻塞),当计数器的值变为0时,因调用await方法被阻塞的线程会被唤醒,继续执行。实践以生活中的case,进行举例。5个同学上完晚自习,班长最后锁门。代码如下:public class CountDownLatchDemo { public static void

2021-02-01 09:52:34 123

原创 ArrayList线程安全问题解决

ArrayList线程安全问题解决问题现象多个线程操作同一个list会出现并发修改异常(java.util.ConcurrentModificationException)测试代码如下:public static void main(String[] args) { List<String> list = new ArrayList<>(); for (int i = 0; i < 30; i++) { new Thread(() -&g

2021-01-29 10:23:08 387 7

原创 CAS算法学习

CAS算法学习概念CAS就是compareAndSwap的缩写,一句话描述:比较并交换。是一个轻量级的同步机制.CAS算法涉及到3个操作数:需要读写的内存值V进行比较的值A需要更新的值B怎么使用以AtomicInteger类进行说明public class CASDemo { public static void main(String[] args) { // 初始值为1 AtomicInteger atomicInteger = new A

2021-01-28 09:04:08 243

原创 LRU算法学习

LRU算法学习概念LRU是Least Recently Used的缩写,即最近最少使用,是一种常用的页面置换算法,选择最近最久未使用的页面予以淘汰。Demo示例参考了尚硅谷阳哥的视频、力扣算法LRU 缓存package com.lly.lru;import java.util.HashMap;import java.util.Map;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.Reent

2021-01-25 17:03:01 106

原创 Spring5之AOP学习

Spring5之AOP学习概念AOP是Aspect Oriented Programming的缩写,意为:面向切面编程。是spring框架的一个重要内容,通过它可以减少代码的耦合度。通知(增强)类型总共有5种类型的通知,也有人叫增强,spring是通过动态代理在运行期间增强的,但是advice英文翻译为通知的意思,所以网上出现了2种概念。具体看下表:类型描述@Before前置通知@AfterReturning返回后通知@After后置通知@Around

2021-01-25 10:33:19 139

原创 java重入锁学习

java重入锁学习什么是重入锁同一个线程能够多次获得同一把锁,不需要等待锁的释放。(比如自己花自己的钱,不用给自己写借条一样的道理)通过synchronized关键字实现public class LockDemo1 { static Object objectLock = new Object(); public static void main(String[] args) { new Thread(() -> { sync

2021-01-07 10:10:39 113

原创 Nacos1.4.0安装

Nacos1.4.0安装下载访问nacos官网https://nacos.io/zh-cn/index.html[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Mobtums6-1609402882059)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201231153732765.png)]点击"V1.4.0 版本说明",进入githup,选择1.4.0进行下载,

2020-12-31 16:21:52 3153 2

原创 Nacos1.4.0启动报错解决方案

Nacos1.4.0启动报错解决方案看了官网得知Nacos1.4.0环境要求,jdk1.8+,maven3.2.x+。我的操作系统是win10,避免大家采坑,所以写篇博客给需要帮助的人。报错信息Caused by: java.lang.UnsatisfiedLinkError: C:\Users\Administrator\AppData\Local\Temp\librocksdbjni6835459412041025213.dll: Can't find dependent libraries

2020-12-14 09:41:06 4295 6

原创 springcloud与springboot的版本选型讲解

spring cloud与spring boot版本选型我们知道spring cloud是一个技术架构的整合,俗称spring全家桶,里面每个服务都是用spring boot搭建起来的,所以这里就存在一个问题,那么spring cloud的版本与spring boot的版本怎么选呢?如果此时的你,正好对这个问题比较疑惑,希望我的这篇文章能帮助到你。访问spring cloud官网(https://spring.io/projects/spring-cloud),往下翻找到如下图所示内容:以图中标注为

2020-11-20 17:15:21 346 3

原创 serialVersionUID详解

serialVersionUID详解序列化是将对象的状态信息转换为可存储或传输的形式的过程。我们都知道, Java对象是保存在JVM的堆内存中的, 也就是说, 如果JVM堆不存在了, 那么对象也就跟着消失了。⽽序列化提供了⼀种⽅案, 可以让你在即使JVM停机的情况下也能把对象保存下来的⽅案。 就像我们平时⽤的U盘⼀样。把Java对象序列化成可存储或传输的形式( 如⼆进制流) , ⽐如保存在⽂件中。 这样, 当再次需要这个对象的时候,从⽂件中读取出⼆进制流, 再从⼆进制流中反序列化出对象。 但是, 虚

2020-11-06 08:53:15 620

原创 使用IDEA创建maven多个Module模块的项目(创建SpringBoot多个Module项目)

1.2.3.

2020-10-21 21:41:06 2008 2

空空如也

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

TA关注的人

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