自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (1)
  • 收藏
  • 关注

原创 duubo入门

什么是dubboDubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。其核心部分包含:远程通讯: 提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。集群容错: 提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持。

2016-05-31 17:00:51 1995

原创 java7 fork-join

什么是Fork/Join框架Fork/Join框架是Java 7提供的一个用于并行执行任务的框架,是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架Fork/Join使用两个类来完成以上两件事情。①ForkJoinTask:我们要使用ForkJoin框架,必须首先创建一个ForkJoin任务。它提供在任务中执行fork()和join()操作的机制。通常情

2016-05-27 14:14:23 1177

原创 ConcurrentHashMap源码分析

什么要使用ConcurrentHashMap在并发编程中使用HashMap可能导致程序死循环。而使用线程安全的HashTable效率又非常低下,基于以上两个原因,便有了ConcurrentHashMap的登场机会。ConcurrentHashMap是线程安全且高效的HashMapConcurrentHashMap的锁分段技术可有效提升并发访问率HashTable容器在竞争激

2016-05-27 10:48:47 986

原创 ReentrantLock 和 Condition的使用

ReentrantLock ReentrantLock可以等同于synchronized使用。ReentrantLock 类实现了Lock ,它拥有与synchronized 相同的并发性和内存语义,但是添加了类似锁投票、定时锁等候和可中断锁等候的一些特性。此外,它还提供了在激烈争用情况下更佳的性能。(换句话说,当许多线程都想访问共享资源时,JVM 可以花更少的时候来调度线程,把更

2016-05-27 10:06:46 2623

原创 semaphore

使用场景并发访问同一个资源的时候。可以控制同时访问的数量

2016-05-26 17:41:50 921

原创 cyclicBarrier

import java.io.IOException;import java.util.Random;import java.util.concurrent.BrokenBarrierException;import java.util.concurrent.CyclicBarrier;import java.util.concurrent.ExecutorService;import

2016-05-26 17:34:00 883

原创 CountDownLatch

主要方法 public CountDownLatch(int count); public void countDown(); public void await() throws InterruptedExceptionimport java.util.concurrent.CountDownLatch;import java.util.concurrent.Exe

2016-05-26 17:24:46 854

原创 双重检查锁定与延迟初始化

在Java程序中,有时候可能需要推迟一些高开销的对象初始化操作,并且只有在使用这些对象时才进行初始化。此时,程序员可能会采用延迟初始化。但要正确实现线程安全的延迟初始化需要一些技巧,否则很容易出现问题。比如,下面是非线程安全的延迟初始化对象的示例代码。

2016-05-26 11:37:50 953

原创 java多线程之指令重排序

重排序 在执行程序时,为了提高性能,编译器和处理器常常会对指令做重排序。重排序分3种类型。1)编译器优化的重排序。编译器在不改变单线程程序语义的前提下,可以重新安排语句的执行顺序。2)指令级并行的重排序。现代处理器采用了指令级并行技术(Instruction-Level Parallelism,ILP)来将多条指令重叠执行。如果不存在数据依赖性,处理器可以改变语句对应机器指令的执行

2016-05-25 11:21:56 1823

原创 java内存模型

简介在并发编程中,需要处理两个关键问题:线程之间如何通信及线程之间如何同步(这里的线程是指并发执行的活动实体)。通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。    在共享内存的并发模型里,线程之间共享程序的公共状态,通过写-读内存中的公共状态进行隐式通信。在消息传递的并发模型里,线程之间没有公共状态,线程之间必须通过发送消

2016-05-25 11:12:43 988

原创 多线程 happens-before规则

简介     Java使用新的JSR-133内存模型,JSR-133使用happens-before的概念来阐述操作之间的内存可见性。在JMM中,如果一个操作执行的结果需要对另一个操作可见,那么这两个操作之间必须要存在happens-before关系。这里提到的两个操作既可以是在一个线程之内,也可以是在不同线程之间规则   1、程序顺序规则:在一个单独的线程中,按照程序

2016-05-25 10:55:17 3502

原创 NIO buffer

Buffer的capacity,position和limit为了理解Buffer的工作原理,需要熟悉它的三个属性:capacitypositionlimitposition和limit的含义取决于Buffer处在读模式还是写模式。不管Buffer处在什么模式,capacity的含义总是一样的。capacity作为一个内存块,Buffer有一个固定的大小值,也叫“

2016-05-24 16:31:49 856

原创 synchronize的实现原理(偏向锁)

1 介绍 当一个线程试图访问同步的代码时,会首先尝试获取锁。执行完毕或者抛出异常的时候会主动释放锁。否则会一直阻塞着。    1.1 实现原理    从JVM规范中可以看到synchronize的实现主要是基于monitor对象来实现的。monitorenter是在编译后插入同步代码开始的位置,而monitorexit是在代码的结束处和异常处。任何一个对象都有一个monitor

2016-05-24 11:31:49 3277

dubbo-admin jdk8

dubbo-admin jdk8环境下运行;dubbo-admin jdk8环境下运行;

2018-05-09

空空如也

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

TA关注的人

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