原创
小陀螺LV地球仪
这个作者很懒,什么都没留下…
展开
-
Spring事务以及事务传播行为详解
目录 Spring事务以及事务传播行为详解一:事务的概念二:事务的四大特性1:原子性(Atomicity)2:⼀致性(Consistency)3:隔离性(Isolation)4:持久性(Durability)三:事务的隔离级别1:脏读2:不可重复读...原创 2020-03-18 14:57:55 · 386 阅读 · 0 评论 -
liunx性能调优系列(三)
某个应用cpu使用率达到100%怎么解决CPU 使用率是单位时间内 CPU 使用情况的统计,以百分比的方式展示。top、ps 之类的性能工具展示的 %user、%nice、 %system、%iowait 、%steal 等等意义如下:user(通常缩写为 us),代表用户态 CPU 时间。注意,它不包括下面的 nice 时间,但包括了 gue...原创 2019-11-11 16:16:09 · 409 阅读 · 0 评论 -
liunx性能调优系列(二)
如何理解“CPU上下文切换”我想你一定很好奇,进程在竞争 CPU 的时候并没有真正运行,为什么还会导致系统的负载升高呢?看到今天的主题,你应该已经猜到了,CPU 上下文切换就是罪魁祸首。我们都知道,Linux 是一个多任务操作系统,它支持远大于 CPU 数量的任务同时运行。当然,这些任务实际上并不是真的...原创 2019-11-08 17:31:52 · 120 阅读 · 0 评论 -
liunx性能调优系列(一)
理解“平均负载”概念每次发现系统变慢时,我们通常做的第一件事,就是执行 top 或者 uptime 命令,来了解系统的负载情况。比如像下面这样,我在命令行里输入了 uptime 命令,系统也随即给出了结果。$ uptime02:34:03 up 2 days, 20:14, 1 user, load average...原创 2019-11-07 11:07:26 · 280 阅读 · 0 评论 -
spring项目在静态变量上使用@Value()注解注入时产生的问题
一:背景公司对项目的进行改造,配置文件从远程拉取,可以使用@Value直接注入,在静态变量上使用@value时,输出的日志变量值为null。二:解决方法然后查资料得知Spring 不允许/不支持把值注入到静态变量中,但是也给出了解决的方案。把@Value("${path.url}")放在静态变量的set方法上面即可,需要注意的是set方法要去掉static,有些朋友习惯性的快捷键生...原创 2019-04-26 14:13:16 · 1012 阅读 · 2 评论 -
JAVA并发编程笔记(四)-死锁
安全性和活跃性通常是相互牵制的,我们使用锁来保证线程安全,但是滥用锁可能引起锁顺序死锁。我们使用线程池和信号量来约束资源的使用,却可能形成资源死锁。一:死锁死锁最简单的形式:当线程A占有锁L时,想要获得锁M,但是同时线程B持有M,并尝试获得L,这样线程将永远的等待下去。相比于JVM处理死锁,数据库的设计就针对了监测死锁,以及从死锁中恢复。一个事务可能需要取得许多锁,并可能一直持有这些锁,直...原创 2018-12-17 18:47:33 · 134 阅读 · 0 评论 -
JAVA并发编程笔记(三)-应用线程池(ThreadPoolExecutor)
任务执行框架Executor,可以简化任务与下线程生命周期的管理,它提供一种简便、灵活的方式,可以在任务的提交和执行策略之间进行解耦。尽管其提供了相当大的灵活性,但并非所有的任务都都能适合所有的执行策略,有些类型的任务需要明确地指定一个执行策略。一:任务与执行策略间的隐性耦合1:依赖性任务:提交到线程池的任务需要依赖其他任务,这样就隐性的给执行策略带来了约束。当线程池的任务都是独立的时候,...原创 2018-12-07 15:07:44 · 164 阅读 · 0 评论 -
JAVA并发编程笔记(二)---Executor框架
一:简介public interface Executor { void execute(Runnable command);}Executor是一个灵活而且强大的框架的基础,可以用于异步任务执行,而且支持很多不同类型的任务执行策略。它还为任务提交和任务执行之间的解耦提供了标准方法。为使用Runnable描述任务提供了通用的方式。Executor的实现提供了对生命周期的支持以及...原创 2018-11-26 14:26:02 · 217 阅读 · 0 评论 -
JAVA并发编程笔记(一)
一:线程安全线程安全的代码,其实就是管理对状态的访问,通常是共享的、可变的状态。当多个线程同时访问一个状态变量时,这时才会产生线程不安全。1:什么是线程安全性 无状态对象永远是线程安全的。2:原子性 有操作A、B,从操作A的角度来说,其他线程操作B时,B要么执行完成,要么一点都未执行。3:锁 java的内部锁,synchronized 作用...原创 2018-11-20 16:04:23 · 284 阅读 · 0 评论 -
Spring 源码分析(一)容器的基本实现
一:核心类的介绍Spring中两个比较重要的类DefaultListableBeanFactory和XmlBeanDefinitionReader,其中:DefaultListableBeanFactory是整个bean加载的核心部分,是spring注册和加载bean的默认实现,它继承了AbstractAutowireCapableBeanFactory,实现了ConfigurableList...原创 2018-10-17 19:08:23 · 173 阅读 · 0 评论 -
Java动态代理概述和手写实现动态代理
一:前提Spring中最重要的两种思想:控制反转IOC(Inversion of Control)和面向切面编程AOP(Aspect-Oriented Programming),而AOP最重要的原理就是动态代理,今天我们谈一下动态代理。动态代理顾名思义是代替别人做某些事,它自己不干,让代理帮他做。别的不多说,直接上代码(举的例子可能不恰当)!二:基于JDK的动态代理1:因为Java的动...原创 2018-09-18 16:54:22 · 719 阅读 · 0 评论