自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 jdk源码解读-并发包-Lock-ReentrantReadWriteLock(1)-整体介绍以及读锁的lock 和 unlock 解析

本人知乎技术文章https://zhuanlan.zhihu.com/p/26763024一.属性:ReentrantReadWriteLock实现了接口ReadWriteLock。同时ReentrantReadWriteLock 也是基于 AbstractQueuedSynchronizer 实现的,它具有下面这些属性。1. 获取顺序:此类不会将读取者

2017-06-20 11:28:21 896

原创 jdk源码解读-并发包-Lock-ReentrantLock(2)--await()与signal()方法走读

ReentrantLock 的基本操作除了lock()和unlock()外,还有condition的await()和signal()。但是是通过调用AbstractQueuedSynchronizer的内部类CondtionObject来实现的。所以await()和singnal()的操作主要在CondtionObject类里。如上图可以看到,ConditonObject是Abstract

2017-05-02 13:01:21 916

原创 jdk源码解读-并发包-Lock-ReentrantLock(1)--lock()与unlock()方法走读

介绍:ReentrantLock 是一个互斥锁,在基本行为和机制上与synchonized一样,只不过synchonized用方法和声明访问了隐式的锁监视器,但是ReentrantLock 做了功能上的扩展。        ReentrantLock 被最后一个成功lock,但是还没unlock的线程拥有。当锁不被其他线程拥有,一个线程会成功的申请锁资源并立即返回。如果当前线程已经

2017-04-23 18:22:29 902

原创 java多线程--深入理解threadlocal以及适用场景

如何使用:      简介:JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序,ThreadLocal并不是一个Thread,而是Thread的局部变量。ThreadLocal很容易让人望文生义,想当然地认为是一个“本地线程”。其实,ThreadLoca

2017-04-10 15:51:41 4362

原创 java nio 传统标准io socket 和nio socket比较与学习

在计算机系统中,最不可靠的就是网络请求,我们通过服务器端给客户端echo信息(客户端请求什么信息服务端就返回给客户端什么信息)。比较两种socket io的优劣。一.标准io socket:    服务端使用多线程处理的结构示意图:       1)服务器端代码:         主线程负责不断地请求echoServer.accept(),如果没有客户端请求主线程会阻塞,当

2017-04-09 16:33:19 9991 4

原创 rocketmq源码分析(1)client模块--生产者的启动

过程:从定义DefaultProducer到DefaultProducer.start()。 一.测试代码 测试代码: public class Producer { public static void main(String[] args) throws MQClientException, InterruptedException { DefaultMQProducer

2016-11-10 20:04:33 6491

原创 研读java编程思想第二章--一切都是对象(everything is a object)(2)

我们的第一个 Java 程序

2014-11-22 14:00:43 747

原创 研读java编程思想第二章--一切都是对象(everything is a object)(1)

“尽管以C++为基础,但 Java 是一种更纯粹的面向对象程序设计语言”。无论C++还是Java 都属于杂合语言。但在 Java 中,设计者觉得这种杂合并不象在 C++里那么重要。杂合语言允许采用多种编程风格;之所以说 C++是一种杂合语言,是因为它支持与 C语言的向后兼容能力。由于C++是C的一个超集,所以包含的许多特性都是后者不具备的,这些特性使 C++在某些地方显得过于复杂。Java 语

2014-10-15 19:45:01 779

空空如也

空空如也

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

TA关注的人

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