自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 Spring MVC开发环境搭建

一、pom.xml文件配置    从maven官网中查找需要的包,找release版本,复制依赖信息到自己的pom.xml文件中。    注:可使用<properties>标签统一管理版本    配置sping,spring-beans(表示受spring管理的对象)、spring-contest(监听spring上下文)    配置Spring MVC+Spring Web,spri...

2018-07-10 16:30:47 178

转载 spring事务管理

事务的基本原理    Spring事务的本质其实就是数据库对事务的支持,使用JDBC的事务管理机制,就是利用java.sql.Connection对象完成对事务的提交,那在没有Spring帮我们管理事务之前,我们要怎么做。    事务是一系列的动作,一旦其中有一个动作出现错误,必须全部回滚,系统将事务中对数据库的所有已完成的操作全部撤消,滚回到事务开始的状态,避免出现由于数据不一致而导致的接下来一...

2018-05-20 20:24:07 132

原创 高并发扩容思路

一、缓存二、消息队列三、拆分应用

2018-05-20 20:17:53 832

原创 线程调度-线程池

一、new Thread弊端    1.每次new Thread新建对象,性能查。    2.线程缺乏统一管理,可能无限制的新建线程,相互竞争,有可能占用过多系统资源导致司机或OOM(Out Of Memory)。    3.缺少更多的功能,如更多执行、定期执行、线程中断。二、线程池的好处    1.重用存在的线程,减少对象创建、消亡的开销,性能好。    2.可有效控制最大并发线程数,提高系统资...

2018-05-06 21:20:54 376

原创 J.U.C之AQS

一、AbstractQueuedSynchronizer-AQS(J.U.C核心)    提供了一个FIFO队列SyncQueue,可用于构建锁,或其他相关同步机制的基础框架,底层使用双向链表实现队列。还提供了一个ConditionQueue(单向链表),只有程序中用到Condition时,才会涉及到ConditionQueue。    AQS内部维护了一个队列管理锁,线程尝试获取锁,如果失败,就...

2018-05-06 20:16:36 311

原创 线程安全策略

一、不可变对象1.不可变对象需要满足的条件    1)对象创建以后其状态不可修改。    2)对象所有域都是final类型。    3)对象是正确创建的(在对象创建期间,this引用没有逸出)。2.定义不可变对象    创建不可变对象方法:将类声明为final(该类不可以被继承),将类中所有变量声明为私有变量(不允许直接访问成员),所有变量不提供set方法,所有可变成员声明为final(保证只可以...

2018-05-06 00:47:28 276

原创 安全发布对象

一、发布对象1.什么是发布对象    ·使一个对象能够被当前范围之外的代码使用。当一个对象能够通过自身的public方法被其他代码得到并修改时,在多线程情况下就会出现线程不安全的现象。    ·对象逸出:一种错误的发布。当一个对象还没有构造完成时,就使它被其他线程所见,提供给外部代码一个对象引用。    比如,一个private对象,被类中的public对象发布,就称这个对象被不安全的发布逸出了它...

2018-05-05 18:32:26 234

原创 JAVA高并发-线程安全性(原子性、可见性、有序性)

一、原子性提供了互斥访问,同一时刻只能有一个线程对它进行操作。保证原子性的操作:1.Atomic    1)Atomic:CAS(Unsafe.compareAndSwapInt)    Atomic包下提供的类利用CAS保证操作的原子性,如和int/integer相对应的AtomicInteger类提供的incrementAndGet()函数实现一个整数自增的操作count++,通过查看源码发现...

2018-05-05 17:13:31 4200 1

原创 JAVA并发基础知识(了解)

一、基础概念1.cpu多级缓存1) 为什么需要cpu缓存    cpu频率太快,主存跟不上,cpu在处理问题时,需要等待主存,浪费资源。缓存(cache)的出现缓解了cpu和内存之间速度不匹配问题(cpu->cache->memory)。2) 缓存的意义    时间局部性(如果某个数据被的访问,在不久的将来还可能被访问)。    空间局部性(如果某个数据被访问,相邻的数据很快也可能被访...

2018-05-04 12:30:18 133

空空如也

空空如也

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

TA关注的人

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