自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 每天一例多线程[day22]-----Disruptor并发框架简介HelloWorld

Disruptor是一个开源的并发框架,并获得2011年Duke's程序框架创新奖,能够在无锁的情况下实现网络的Queue队列并发操作。Disruptor是一个高性能的异步处理框架,或者可以认为是最快的消息框架(轻量的JMS),也可以认为是一个观察者模式的实现,或者事件监听模式的实现。也可以理解为一个高效的“生产者-消费者”模型。性能远远高于传统的BlockingQueue。 Disrup...

2018-10-15 22:27:17 189

转载 每天一例多线程[day21]-----ReentrantReadWriteLock

 ReentrantReadWriteLock,读写锁,核心就是实现读写分离的锁,在高并发访问下,尤其是读多写少的场景下,性能要远远高于重入锁。之前的ReentrantLock和Synchronized在同一时间内只能有一个线程访问被锁定的代码,那么读写锁则不同,其本质时分成两个锁,读锁+写锁,在读锁下,多个线程可以并发地访问;但是在写锁的时候只能一个一个顺序访问。总结:读读共享,读写互斥...

2018-10-01 14:51:19 114

转载 每天一例多线程[day21]-----ReentrantReadWriteLock

ReentrantReadWriteLock,读写锁,核心就是实现读写分离的锁,在高并发访问下,尤其是读多写少的场景下,性能要远远高于重入锁。之前的ReentrantLock和Synchronized在同一时间内只能有一个线程访问被锁定的代码,那么读写锁则不同,其本质时分成两个锁,读锁+写锁,在读锁下,多个线程可以并发地访问;但是在写锁的时候只能一个一个顺序访问。总结:读读共享,读写互斥,写写...

2018-10-01 14:39:44 103

转载 每天一例多线程[day20]-----ReentrantLock

 ReentrantLock是JDK的并发包下locks包下的工具类,ReentrantLock比synchonized性能要好,但是jdk1.8之后synchonized的性能也得到大幅度提升,不亚于ReentrantLock。锁的演变 ReentrantLock是由synchonized和对象锁演变而来。回忆以下之前使用synchronized和Object锁的方式: ...

2018-10-01 14:37:11 85

转载 每天一例多线程[day19]-----JDK实现Future的用法

  import java.util.concurrent.Callable; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; import java.util....

2018-10-01 09:27:35 123

转载 每天一例多线程[day18]-----ThreadPoolExecutor

  /* 自定义线程池。 * 构造参数: * public ThreadPoolExecutor( * int corePoolSize,--当前线程池核心线程数 * int maximumPoolSize,--当前线程池最大线程数 * long keepAliveTime,--保持活着的空间时间 * TimeUnit unit,-...

2018-10-01 09:12:58 98

转载 每天一例多线程[day17]-----Executors框架

  /** * 以下四种底层实现核心都是实例化了一个ThreadPoolExecutor对象返回,其实就是根据以下四种传递的具体参数 * 不同而实现的四种不同的功能。 * * ThreadPoolExecutor来实现以下四种的原因是,当以下四种不满足我们需求时,我们可以 * 自定义线程池。 * 构造参数: * publ...

2018-10-01 08:51:52 94

转载 每天一例多线程[day15]----Future模式之美丽的谎言

Future模式的适用场景是:想要得到数据时,先返回数据的包装,异步获取真实数据,真正需要时再拿数据,真实数据也许已经异步得到,也许还在阻塞获取中...       这有点像BOSS布置任务,比如由于市场需要,将在本月20号发布一个版本,今天是10号,分配任务给小弟去做了,询问小弟能不能搞定,由于小弟着急上位就答应了。而BOSS忙着处理每天的商务问题,在20号之前都没有空理会给小弟分配的任务。...

2018-09-30 16:40:36 92

转载 每天一例多线程[day14]----Queue队列

关于什么时候使用MQ消息队列,什么时候使用JAVA自带队列,有一些基本的原则,如下图:生产者:生产消息的速度很慢,缓慢地放入MQ中存储。消费者:消费能力强,快速处理掉MQ中的消息。这种场景下,MQ就不适合使用了,因为消费端的处理能力很强,生产者完全可以通过TCP长连接直连消费者,比如使用Netty或者Mina等框架就比较合适。介绍集中JDK并发包下的队列:Concurr...

2018-09-30 15:23:20 151

转载 每天一例多线程[day13]-----同步类容器和并发类容器

对Vector、ArrayList在迭代的时候如果同时对其进行修改就会抛出java.util.ConcurrentModificationException如:  package com.jeff.base.coll012;   import java.util.Iterator; import java.util.Vector;   /** ...

2018-09-30 14:28:48 116

转载 每天一例多线程[day12]-----单例模式与线程安全

 package com.jeff.base.conn011;  public class DubbleSingleton {   private static DubbleSingleton ds;   public static DubbleSingleton getDs(){ if(ds == null){ try { //...

2018-09-30 13:48:11 97

转载 每天一例多线程[day11]-----ThreadLocal

每天一例多线程[day11]-----ThreadLocal  package com.jeff.base.conn010;   public class ConnThreadLocal {   public static ThreadLocal<String> th = new ThreadLocal<String>();  ...

2018-09-30 11:22:10 95

转载 每天一例多线程[day10]-----使用wait和notify模拟实现阻塞队列

  package com.jeff.base.conn009;   import java.util.LinkedList; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger;   /** * 使用wait和not...

2018-09-26 23:17:16 104

转载 每天一例多线程[day9]-----多线程间的通信

volatile实现  package com.jeff.base.conn008;   import java.util.ArrayList; import java.util.List; /** * 定义t1和t2两个线程: * t1线程往list中加入元素 * t2线程发现list元素个数为5时抛出异常,停止t2线程...

2018-09-26 23:08:09 98

转载 每天一例多线程[day8]-----AutomicInteger原子操作

即使我们使用volitile,也无法保证多线程访问共享变量的原子性,如下: [java] view plain copy<code class="language-java">package com.jeff.base.sync007;      /**   *   * volatile关键字不具备synchronized关键字的原子性(同步)   * @au...

2018-09-24 23:50:38 366

转载 每天一例多线程[day7]-----volatile关键词的含义

 先出一道题:package com.day20180208;   public class MyThread extends Thread {       private  int count = 1;            private void setCount(int count) {           this.coun...

2018-09-24 23:46:53 99

转载 每天一例多线程[day6]-----synchronized细节

syhchronized写法举例  package com.jeff.base.sync006;   /** * 使用synchronized声明的方法在某些情况下是有弊端的, * 比如:A线程调用同步的方法执行一个很长时间的任务,那么B线程就必须等待比较长的事件才能执行, * 这样的情况下可以使用synchronized去优化代码的执行时间...

2018-09-24 23:43:11 87

转载 每天一例多线程[day5]-----synchronized锁重入

  package com.jeff.base.sync005; /** * synchronized的重入: * 当一个线程得到一个对象锁且还未释放锁时,再次请求此对象锁时可以再次得到该对象的锁 * @author jeff * */ public class SyncDubbo1 {   public sy...

2018-09-24 23:22:02 93

转载 每天一例多线程[day4]-----synchronized与DirtyRead脏读问题

问题:以oracle数据库为例,比如当我们在下午2点钟查询用户表的一条记录值100,由于网络卡顿,数据库直到2点办才查询出来这条记录,在这半小时内,其他用户将用户表的这条记录修改为200了,那么请问2点半我们看到的这条数据是100还是200?答案是100,原因是oracle数据库存在一致性读的特性,不管修改的次数再多,即使抛出异常也不会看到200这个数据。 在多线程应用中,当我们在设置...

2018-09-19 23:14:26 130

原创 每天一例多线程[day3]-----synchronized与一个对象多个方法一把锁

  package com.jeff.base.sync003;   /** * 一个对象多个方法一把锁 * * 对象锁的同步和异步问题   * @author jeff * */ public class MyObject {   /** * 同步方法 */ pu...

2018-09-19 23:09:07 213

转载 每天一例多线程[day2]-----synchronized与多个线程多个锁

 package com.jeff.base.sync002; /** * 多个线程多个锁 * * 关键字synchronized取得的锁都是对象锁,而不是把一段代码(方法)当做锁, * 所以代码中哪个线程先执行synchronized关键字的方法,哪个线程就持有该方法所属对象的锁(Lock), * * @author je...

2018-09-19 22:58:08 208

转载 每天一例多线程[day1]-----synchronized与锁竞争

[javascript] view plain copy<code class="language-java">/**   * 多个线程一把锁   *    * 线程安全概念:   * <span>  </span>     当多个线程访问某一个类(对象或方法)时,这个对象始终都能表现出正确的行为,   * 那么这个类(对象或方法)就是线程安全的。...

2018-09-19 22:42:31 108

转载 jedis 操作工具类

jedis 操作工具类包括连接池的使用及 jedis对string 、set、sortset、list、hash的所有常规操作。redis.properties文件:#\u63A7\u5236\u4E00\u4E2Apool\u53EF\u5206\u914D\u591A\u5C11\u4E2Ajedis\u5B9E\u4F8B\uFF0C\u901A\u8

2017-07-03 15:39:26 238

转载 java实现验证码的制作

验证码概述为什么使用验证码?  验证码(CAPTCHA)是一种全自动程序。主要是为了区分“进行操作的是不是人”。如果没有验证码机制,将会导致以下的问题:对特定网站不断进行登录,破解密码;对某个网站创建账户;对某个网站提交垃圾数据(灌水贴);对某个网站进行刷票。 使用Servlet实现验证码  一个验证码包含两个部分:图片和输入框。 1 s

2016-10-13 09:38:41 400

空空如也

空空如也

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

TA关注的人

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