- 博客(27)
- 收藏
- 关注
原创 Mysql索引
不使用索引的话,mysql会遍历整个表,效率较低MyISAM和InnoDB:只支持BTREE索引。MEMORY/HEAP:支持HASH和BTREE索引。创建唯一索引保证数据表中每一行数据的唯一性。可以大大加快数据的查询时间。可以实现数据的参考完整性方面,可以加速表与表之间的链接。在使用分组和排序子句查询时,也可以减少分组和排序的时间。创建和维护索引耗费时间,随着数据量的增加也会增加时间。索引会占用磁盘空间,数据越多占用越多。增删改操作也会动态的维护索引,降低了数据的维护速度。
2023-03-08 10:49:52
538
原创 并发变成实战-原子变量与非阻塞同步机制
非阻塞算法设计和实现上要复杂的多,但在可伸缩性和活跃性上拥有巨大的优势。原子变量提供了与volatile变量相同的语义,此外还支持原子的更新操作,从而更适用于实现计数器、序列发生器和统计数据收集等。
2023-03-03 16:51:02
711
原创 并发编程实战-构建自定义的同步工具
基于AQS构建的同步器类中,最基本的操作包括各种形式的获取操作和释放操作。获取操作:获取的是锁或者许可,调用者可能会一直等待直到同步器类处于可悲获取的状态。CounDownLatch获取操作意味着“等待并直到闭锁到达结束状态”;FutureTask意味着“等待并直到任务已经完成”。释放操作:并不是一个可阻塞的操作,执行释放操作时,所有在请求时被阻塞的线程都会开始执行。如果一个类想成为状态依赖的类,那么它必须拥有一些状态。
2023-03-02 11:05:47
745
原创 并发编程实战-并发程序的测试
介绍在测试并发程序正确性和性能时的一些方法并发测试分为两类:安全性测试与活跃性测试安全性测试通常会采用测试不变性条件的形式,即判断某个类的行为是否与其规范保持一致活跃性测试包括进展测试和无进展测试两个方面与活跃性测试相关的是性能测试:吞吐量:一组并发任务中已完成任务所占比例响应性:请求从发出到完成的时间可伸缩性:更多的资源(CPU)下,吞吐量的提升情况。
2023-02-23 10:46:28
928
原创 并发编程实战- 线程池的使用
本章将介绍对线程池进行配置与调优的一些高级选项,并分析在使用任务执行框架时需要注意的各种危险,以及一些使用Executor的高级示例.
2023-02-02 15:25:03
287
原创 并发编程实战-取消与关闭
本章介绍了,如何在线程执行完正常工作之前,提前结束java没有提供任何机制安全的终止线程.但它提供了中断,这是一种协作机制,能使一个线程终止另一个线程的当前工作.
2023-01-31 16:31:27
419
原创 并发笔记四:锁机制(二)
目录并发笔记一:什么是线程不安全?并发笔记二:线程中断机制并发笔记三:线程的生命周期并发笔记四:锁机制(一)1.关键字 volatile 被volatile修饰的变量都是易变的、不稳定的。所以访问volatile不存在缓存等优化机制,每次访问都是直接从内存地址去读取值。 虽说每次读取volatile变量都是从内存地址中读取,但是对于修改完的volatile变量要马上将其刷新到主内存中,也就是volatile提供了内存可见性,而对于原子性,volatile对于单个的读写具有原子性,而对于多个
2020-09-22 17:20:13
258
原创 并发笔记四:锁机制(一)
1.隐式锁 隐式锁,又称线程同步,即synchronized修饰的方法或代码块。 修饰方法修饰方法时,放在范围修饰符(public等)之后,表示该方法线程同步。默认锁的对象就是当前对象本身。 private synchronized static void addOne(){ count ++; }修饰代码块修饰代码块时,对某一代码块使用synchronized(Object),指定加锁对象 private synchronized
2020-09-21 17:21:38
207
原创 并发笔记三:线程的生命周期
线程的生命周期中有5中状态:new、runnable、running、blocked、dead。新建(new):即Thread t = new Thread();此时线程未启动,但占用内存空间。就绪(runnable):即t.start();线程已被启动,等待被分配给CPU时间片,此时线程是等待阶段,不一定会被立即执行。运行中(running):线程获得CPU资源正在执行任务,除非线程自动放弃CPU资源或有优先级更高的线程进入,线程将一直运行到结束。阻塞(blocked):某种原因让线程让出CP
2020-09-15 16:41:35
174
原创 并发笔记二:线程中断机制
有两种方法我们可以使用线程的停止或中断。1.调用 Thread.stop()方法 调用Thread.stop();方法会强迫停止一个线程,并创建一个新的ThreadDeath对象作为异常。捕获ThreadDeath异常后必须重新抛出该对象才能真正中止线程。 Thead.stop()不安全,不建议使用。2.利用Thread.interrupt()方法和机制 java的中断机制是一种协作机制,调用Thread.interrupt()并不会直接中断另一线程,需要该线程自己处理中断。 可以这样理
2020-09-15 16:02:11
200
原创 并发笔记一:什么是线程不安全?
1. 概念线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据。<br/>2. 举个栗子话不多说,直接上代码public class ConcurrencyTest { //请求总数 private static int clientTotal = 10000; //同时并发执行的线程数 public static int threadTotal = 200; public static int count
2020-09-04 09:45:46
438
原创 Spring5源码分析(2)-- Spring容器
Spring容器的基本实现1. 容器的基本用法首先看目录结构先来个示例:public class UserBean { private String username = "lilei->>>>>>>>>>>>>>>>>>>>>>>>>...
2019-12-25 17:34:03
192
原创 Spring5源码分析(1)-- Spring整体架构
Spring整体架构架构解析1.Data Access/IntegrationJDBC: 封装了Spring对JDBC数据库访问的所有类。ORM: 关系映射API(JPA,JDO,Hibernite,ibatis等),可使用Spring特性进行O/R映射。OXM: 提供了对Object/XML映射实现的抽象层(JAXB,Castor,XMLBeans,JIBX,Xstream)。J...
2019-12-24 10:22:28
207
原创 微服务第一步--------如何将传统项目改造成多模块项目
众所周知,传统的单模块项目随着时间的推移会变得异常庞大,动辄几百个类,让我们后期的维护和扩展都面临着巨大的挑战,服务器也会因为项目的庞大面临着巨大的挑战。在这个微服务盛行的时代,传统的单机项目注定会一步步走向终点。今天,我们就来探讨一下如何将一个传统的项目改造成多模块项目。一、前期准备因为是改造项目,所以并不涉及到技术上的难点,在技术架构上并没有太多需要统一的地方。但是为了理解方便,还是推荐准...
2019-09-24 15:48:32
1799
1
原创 springboot+redis+shiro实现前后端分离的权限管理(自定义session管理和redis缓存)
之前介绍了springboot+shrio的入门教程,项目结构比较简单,最近想自己做一个前后端分离项目,权限框架依然想用流行的shiro框架,参照网上的众多资料,踩了不少坑之后,终于是实现了后端的相关配置和操作,话不多说,马上进入正题。
2019-09-18 18:04:19
2403
原创 基于springboot搭建的shiro框架--快速入门篇
最近因公司业务需要,研究了一下shiro框架,虽然在研究过程中也遇到过不少问题,不过好在最后都解决了。于是在这里写一篇文章记录一下自己的使用过程。本篇文章只讨论shiro的快速使用,暂不考虑原理分析,后续可能会出源码分析的文章。话不多说,我们马上进入正题,本篇文章采用springboot2.0,jdk1.8。先贴一张项目结构一、引入相关依赖并添加配置首先我们在搭建好的springboot...
2019-06-24 11:28:40
956
4
原创 springboot将图片上传至七牛云服务器(超详细)
我们在公司的业务开发中,经常会接触到图片上传功能,有很多小伙伴都会在这里遇坑,特别是将图片上传至七牛云服务器上,网上的很多讲解也都很不明确。那么今天我们就要来讲一讲如何将本地的图片上传至七牛云服务器上,配合步骤自己做一个小的demo吧!本文章很适合新手入门学习哦!一.注册七牛云账号首先我们需要申请一个七牛云账号,登录七牛云网站进行注册,注册成功后登录并进入管理控制台进入控制台后点击左边的对...
2019-04-09 17:08:49
7038
22
原创 如何部署JSP版本的百度富文本编辑器(带图片上传功能)
博主之前因为公司项目需要部署百度的富文本编辑器到项目中,由于之前一直是后端开发,所以部署上还是费了一番心思的,网上也有很多教程但是用起来总会有各种问题,今天在这里记录一下以备今后的不时之需,也希望帮助到需要用到的人。首先我们要去百度富文本编辑器的官网上下载源码:百度编辑机器官网的超链接我用的是JSP的,下载UTF-8版本就可以。然后我们找到刚刚下载的文件,打开后可以看到如下的目录结构:...
2018-12-20 10:31:07
1398
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人