自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (3)
  • 收藏
  • 关注

原创 多线程之Callable接口及FutureTask源码分析

两者的不同在于:1、Runnable接口的run()方法没有返回值,而Callable接口的call()方法是带有泛型的返回值。2、Runnable方法的run()方法的异常只能在内部处理,而不能向上抛,而Callable的call()方法允许抛出异常。

2017-07-17 21:05:05 385

原创 多线程之线程局部变量ThreadLocal及原理

ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。既然是只有当前线程可以访问的数据,自然是线程安全的。

2017-07-16 20:50:42 487

原创 多线程之循环栅栏CyclicBarrier及原理

CyclicBarrier它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待。因为该 barrier 在释放等待线程后可以重用,所以称它为循环 的 barrier。比如将计数器设置为10,那么凑齐第一批10个线程后,计数器就会归0,然后接着凑齐下一批10个线程,这就是循环栅栏内在的含义。

2017-07-15 22:49:31 2700

原创 多线程之倒计时器CountDownLatch及原理

一、倒计时器CountDownLatch这个工具通常用来控制线程等待,它可以让某一个线程等待直到倒计时结束再开始执行。CountDownLatch是共享模式的。

2017-07-15 21:24:56 620

原创 多线程之信号量Semaphore及原理

重入锁ReentrantLock是独占模式,一次都只允许一个线程访问一个资源,而信号量是共享模式,也就是说可以指定多个线程,同时访问某一个资源。

2017-07-14 14:58:32 877

转载 java枚举类型enum的使用

有的人说,不推荐使用枚举。有的人说,枚举很好用。究竟怎么使用,如何使用,仁者见仁智者见智。总之,先学会再说~为什么要引入枚举类一个小案例你写了一个小程序,不过好久不用了,突然有一天,你想使用一下它。程序要想正确运行,需要将今天星期几存到数据库里。这个时候,你开始犯难了。当初的你还很年轻,不懂程序界的险恶,设计这个程序的时候,傻不拉几把这个字段设计为int类型的,

2017-07-12 09:50:04 698

原创 idea下载多个插件项目启动不了解决方案

idea下载多个插件项目启动不了解决方案

2017-07-11 17:42:03 4721

原创 多线程之重入锁ReentrantLock及原理

重入锁是sunchronized、Object.wait()和Object.notify()方法的替代品(或者说是增强版),在JDK5.0的早期版本,重入锁的性能远远好于synchronized,但从JDK6.0开始,JDK在synchronized上做了大量的优化,使得两者的性能差距并不大。但ReentrantLock也有一些synchronized没法实现的特性。重入锁,为啥要叫重入锁呢,

2017-07-10 16:33:43 976

原创 多线程之AQS原理

AQS,全称为AbstractQueuedSynchronizer,粗粗的翻译下就是抽象的队列式的同步器。java.util.concurrent包中很多同步类,都是基于AQS,像ReentrantLock、Semaphore等等。小小的截取一段ReentrantLock类的这部分代码:

2017-07-10 11:41:11 582

原创 spring的事务传播行为及事务隔离级别

<tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="query*" read-only="true" propagation="SUPPORTS" /> <tx:method name="get*" read-only="true" propagation="SUPPORTS" />

2017-07-09 10:38:26 2019 1

原创 多线程之CAS

不同于synchronized这种悲观的阻塞同步机制,java.util.concurrent包中还借助CAS实现了乐观的非阻塞同步机制。CAS(CompareAndSwap):比较并交换CAS有包含三个操作数:内存值V,旧的预期值A以及更新值B。当且仅当V的值等于A的时候,CAS才通过原子方式用更新值B来更新V的值。否则不做任何操作。CAS的含义是:“我认为V的值应该是A,如果是,那么将V的值更新为B,否则不修改并告诉V的值实际为多少”。

2017-07-07 13:42:53 835

datax on azkaban——datax as a service

datax基于azkaban调度的服务实现代码,0积分,需要的请自取

2020-11-03

自己搭建轻量级javaWeb框架之mvc以及ioc

自己搭建轻量级javaWeb框架之mvc以及ioc

2017-05-15

java生成二维码所需jar包

java生成二维码的zxing、qrcode、jqueryqrcode所需jar包

2017-01-18

空空如也

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

TA关注的人

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