上一页 1 ··· 9 10 11 12 13
摘要: 1、切面依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency> 2、工具类 /** * @author Liu 阅读全文
posted @ 2020-02-03 10:53 叮叮叮叮叮叮当 阅读(255) 评论(0) 推荐(0) 编辑
摘要: 1 public class DateUtil { 2 3 private static final ZoneId ZONE_ID = ZoneId.systemDefault(); 4 private static final DateTimeFormatter DATETIME = DateTi 阅读全文
posted @ 2020-02-03 10:22 叮叮叮叮叮叮当 阅读(127) 评论(0) 推荐(0) 编辑
摘要: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://m 阅读全文
posted @ 2020-02-03 10:06 叮叮叮叮叮叮当 阅读(78) 评论(0) 推荐(0) 编辑
摘要: 使用线程池的目的 线程是稀缺资源,不能频繁的创建 解耦作用:线程的创建与执行完全分开,方便维护 将其放入一个池子中,可以给其他任务进行复用 优点 降低资源消耗,通过重复利用已创建的线程来降低线程创建和销毁造成的消耗。 提高相应速度,当任务到达时,任务可以不需要的等到线程创建就能立即执行。 提高线程的 阅读全文
posted @ 2019-07-07 11:03 叮叮叮叮叮叮当 阅读(264) 评论(0) 推荐(1) 编辑
摘要: 上一篇文章介绍了AQS的基本原理,它其实就是一个并发包的基础组件,用来实现各种锁,各种同步组件的。它包含了state变量、加锁线程、等待队列等并发中的核心组件,现在我们来看一下多线程获取锁的顺序问题。 1 /** 2 * Creates an instance of {@code Reentrant 阅读全文
posted @ 2019-07-07 10:34 叮叮叮叮叮叮当 阅读(396) 评论(0) 推荐(1) 编辑
摘要: ReentrantLock和AQS的关系 首先我们来看看,如果用java并发包下的ReentrantLock来加锁和释放锁,是个什么样的: 1 ReentrantLock reentrantLock = new ReentrantLock(); 2 reentrantLock.lock(); 3 / 阅读全文
posted @ 2019-06-23 12:04 叮叮叮叮叮叮当 阅读(196) 评论(0) 推荐(1) 编辑
摘要: 计算机的内存模型: 计算机在运行行程序的时候,指令由CPU执行,计算机上数据存放在物理内存当中,CPU在执行指令的时候免不了要和数据打交道。刚开始,还相安无事的,但是随着CPU技术的发展,CPU的执行速度越来越快。而由于内存的技术并没有太大的变化,所以从内存中读取和写入数据的过程和CPU的执行速度比 阅读全文
posted @ 2019-06-23 10:40 叮叮叮叮叮叮当 阅读(768) 评论(0) 推荐(1) 编辑
摘要: 在Java多线程并发的情况下同时对一个变量进行操作会出现线程安全的问题,假如我们现在使用20个线程对一个变量不停累加1,代码如下: 1 public class ThreadDemo implements Runnable { 2 private int num = 0; 3 @Override 4 阅读全文
posted @ 2019-06-16 17:37 叮叮叮叮叮叮当 阅读(865) 评论(0) 推荐(1) 编辑
上一页 1 ··· 9 10 11 12 13