自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 问答 (1)
  • 收藏
  • 关注

原创 深入理解AQS之独占锁ReentrantLock源码分析

- AQS全称AbstractQueuedSynchronizer,是大多JUC并发包实现所依赖的抽象同步框架,它是MESA在java层面抽象层的管程实现,其中包括(条件队列,等待队列,等待唤醒,同步状态等)

2023-09-19 12:26:43 63

原创 线程池原理

ctl字段二进制是32位的,前3位是线程的运行状态,后29位是线程池开启的线程数,所以线程数最多能开2的29次方个

2023-09-19 12:23:55 46

原创 java-thread-cas

通常指这样一种原子操作,内存中存的一个值与期望修改的值做比较,如果相同就给内存中的值设置一个新值

2023-09-19 12:22:12 55

原创 Atomic原子操作类

上述方法调用了Unsafe类的getAndAddLong方法,该方法内部是个native方法,它的逻辑是采用自旋的方式不断更新目标值,直到更新成功。在并发量较低的环境下,线程冲突的概率比较小,自旋的次数不会很多。但是,高并发环境下,N个线程同时进行自旋操作,会出现大量失败并不断自旋的情况,此时AtomicLong的自旋会成为瓶颈。概念:在J.U.C下的atomic包提供了一系列的操作简单,性能高效,并能保证线程安全的类去更新基本类型变量,数组元素,引用类型以及更新对象中的字段类型。

2023-09-19 12:18:32 44

原创 进程&线程&协程&用户态&内核态

进程&线程&协程&用户态&内核态

2023-09-19 12:14:55 78

原创 硬件层面缓存一致性

位于cpu与主内存之间一种容量较小但速度很快的存储器,主要是查内存的速度远远大于查缓存的速度,需要增加缓存来存储刚用过的数据或循环使用的一部分数据。cpu为了加快速度,减少cpu与内存的交互,一般在cpu上集成了多级缓存架构,常见的为三级缓存结构。局部性原理 : cpu访问存储,无论是取数据或是取cpu指令,都趋于聚集在一片连续的区域。

2023-09-19 12:09:55 68

原创 理解JMM内存模型

MM为了使java具有跨平台特性屏蔽了各种硬件和操作系统的内存访问差异,规定了共享变量的访问与同步,围绕原子性,有序性,可见性展开

2023-09-19 12:03:07 49

原创 线程生命周期&线程交互方式

处于休眠中的线程被中断,线程是可以感受到中断信号的,并且会抛出一个 InterruptedException 异常,同时清除中断信号,将中断标记位设置成 false。概念:LockSupport是JDK中用来实现线程阻塞和唤醒的工具,线程调用park则等待许可,调用unpark则为指定线程提供许可。实现callable接口结合线程池使用,有返回值,抛异常,线程池里面的线程也是new thread实现的。中断机制是一种协作机制,也就是说通过中断并不能直接终止另一个线程,而需要被中断的线程自己处理。

2023-09-19 11:57:47 68

原创 Linux下安装MySQL

安装步骤1、下载    下载地址:http://dev.mysql.com/downloads/mysql/5.6.html#downloads    下载版本:我这里选择的5.6.33,通用版,linux下64位    也可以直接复制64位的下载地址,通过命令下载:wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5....

2018-08-29 22:58:25 143 1

转载 转个博客园的jsonp,说的很透彻

前言: 由于Sencha Touch 2这种开发模式的特性,基本决定了它原生的数据交互行为几乎只能通过AJAX来实现。当然了,通过调用强大的PhoneGap插件然后打包,你可以实现100%的Socket通讯和本地数据库功能,又或者通过HTML5的WebSocket也可以实现与服务器的通讯和服务端推功能,但这两种方式都有其局限性,前者需要PhoneGap支持,后者

2015-09-18 17:16:00 576

转载 使用Maven管理spring环境的profile定义

开发过程中需要针对开发环境,正式环境等进行不同的参数配置,比如开发环境使用H2数据库做简单测试,正是环境使用mysql数据库。如果手动管理这些配置信息会很麻烦,最重要的是可能会因为操作失误导致一些错误。因此需要对不同环境的配置信息进行集中管理。spring 3.1版本提供了profile配置机制,同时maven对profile也有支持,我们将使用mavne + spring 的profile管

2015-09-11 16:31:33 444

原创 spring整合javamail跟quartz实现定时发送邮件

1.spring 整合 javamail  ---applicationContext-javamail-beans.xml代码为:<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http

2015-09-07 17:08:21 955

原创 通过tomcat插件+jndi配置,避免tomcat热重启影响开发效率

1.首先去http://www.eclipsetotale.com/tomcatPlugin.html网站下载tomcat插件,并与eclipse整合,(具体操作可查看:http://blog.csdn.net/seuxiaoqi/article/details/6003549)2.1配置tomcat跟路径(CATALINA)----->cong------>context.xml(此为全局设

2015-09-07 10:57:17 755

转载 避免tomcat热重启影响开发效率---亲测可用

Oracle提供的JDK其实已经自带一定程度的热加载功能,但是如果你修改了类名,方法名,或者添加了新类,新方法的话。Tomcat都需要重新启动来使得刚才的更改生效。而JRebel和springloaded都能有效地解决这个问题。其中springloaded是开源软件,可以免费使用,尤其难得。其主页:https://github.com/spring-projects/spring-lo

2015-06-18 17:38:07 1443

转载 SpringMVC 数据验证

这里我们采用Hibernate-validator来进行验证,Hibernate-validator实现了JSR-303验证框架支持注解风格的验证。首先我们要到http://hibernate.org/validator/下载需要的jar包,这里以4.3.1.Final作为演示,解压后把hibernate-validator-4.3.1.Final.jar、jboss-logging-3.1.0.

2015-06-18 16:34:00 340

空空如也

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

TA关注的人

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