Doug Lea

如果IT的历史,是以人为主体串接起来的话,那么肯定少不了Doug Lea。这个鼻梁挂着眼镜,留着德王威廉二世的胡子,脸上永远挂着谦逊腼腆笑容,服务于纽约州立大学Oswego分校计算机科学系的老大爷。

说他是这个世界上对Java影响力最大的个人,一点也不为过。因为两次Java历史上的大变革,他都间接或直接的扮演了举足轻重的角色。一次是由JDK 1.1到JDK 1.2,JDK1.2很重要的一项新创举就是Collections,其Collections的概念可以说承袭自Doug Lea于1995年发布的第一个被广泛应用的collections;一次是2004年所推出的Tiger。Tiger广纳了15项JSRs(Java Specification Requests)的语法及标准,其中一项便是JSR-166。JSR-166是来自于Doug编写的util.concurrent包

值得一提的是: Doug Lea也是JCP (Java小区项目)中的一员。

Doug是一个无私的人,他深知分享知识和分享苹果是不一样的,苹果会越分越少,而自己的知识并不会因为给了别人就减少了,知识的分享更能激荡出不一样的火花。《Effective JAVA》这本Java经典之作的作者Joshua Bloch便在书中特别感谢Doug Lea是此书中许多构想的共鸣板,感谢Doug Lea大方分享丰富而又宝贵的知识。

http://baike.baidu.com/link?url=1N_Fb-i7W8X2_sveQcqrUpy9u2lke4CFbWwQ_JKc8qyUFObmiF7-UVY9cRfxKHit5TYJGvnDSH_VZhlcUCC5Aa

时间: 2025-01-27 16:08:43

Doug Lea的相关文章

利用Doug Lea的并发包实现带超时机制的线程池

   jdk5引入的concurrent包来自于Doug Lea的卓越贡献.最近我在查找服务器OOM的原因之后,决定采用这个包重写应用中一个servlet,这个servlet调用了一个阻塞方法,当被阻塞之后,服务器中的线程数(因为阻塞了,后续请求不断地新增线程)突然增加导致了服务器当机,因此决定采用一个线程池,并且设置超时,如果阻塞方法超过一定时间就取消线程.因为我们的项目仍然跑在jdk 1.4.2上面,短期内不可能升级到jdk5,还是要利用这个并发包.去这里下载源码并自己打包成jar,加入项目

Doug Lea并发编程文章全部译文

Doug Lea's Home Page 如果IT的历史,是以人为主体串接起来的话,那么肯定少不了Doug Lea.这个鼻梁挂着眼镜,留着德王威廉二世的胡子,脸上永远挂着谦逊腼腆笑容,服务于纽约州立大学Oswego分校计算机科学系的老大爷. 说他是这个世界上对Java影响力最大的个人,一点也不为过.因为两次Java历史上的大变革,他都间接或直接的扮演了举足轻重的角色.一次是由 JDK 1.1到JDK 1.2,JDK1.2很重要的一项新创举就是Collections,其Collections的概念

Java核心技术 卷Ⅰ 基础知识(原书第10版)

Java核心技术系列 Java核心技术 卷Ⅰ 基础知识 (原书第10版) Core Java Volume I-Fundamentals (10th Edition) [美] 凯S.霍斯特曼(Cay S. Horstmann) 著 周立新 陈 波 叶乃文 邝劲筠 杜永萍 译 图书在版编目(CIP)数据 Java核心技术 卷Ⅰ 基础知识(原书第10版) / (美)凯S. 霍斯特曼(Cay S. Horstmann)著:周立新等译. -北京:机械工业出版社,2016.8 (Java核心技术系列) 书

深入剖析ConcurrentHashMap(2)

经过之前的铺垫,现在可以进入正题了. 我们关注的操作有:get,put,remove 这3个操作. 对于哈希表,Java中采用链表的方式来解决hash冲突的. 一个HashMap的数据结构看起来类似下图: 实现了同步的HashTable也是这样的结构,它的同步使用锁来保证的,并且所有同步操作使用的是同一个锁对象.这样若有n个线程同时在get时,这n个线程要串行的等待来获取锁. ConcurrentHashMap中对这个数据结构,针对并发稍微做了一点调整. 它把区间按照并发级别(concurren

有关“双重检查锁定失效”的说明

原文地址 译者:丁一 双重检查锁定(以下称为DCL)已被广泛当做多线程环境下延迟初始化的一种高效手段. 遗憾的是,在Java中,如果没有额外的同步,它并不可靠.在其它语言中,如c++,实现DCL,需要依赖于处理器的内存模型.编译器实行的重排序以及编译器与同步库之间的交互.由于c++没有对这些做出明确规定,很难说DCL是否有效.可以在c++中使用显式的内存屏障来使DCL生效,但Java中并没有这些屏障. 来看下面的代码 01 // Single threaded version 02 class

Reactor模式详解

前记 第一次听到Reactor模式是三年前的某个晚上,一个室友突然跑过来问我什么是Reactor模式?我上网查了一下,很多人都是给出NIO中的 Selector的例子,而且就是NIO里Selector多路复用模型,只是给它起了一个比较fancy的名字而已,虽然它引入了EventLoop概 念,这对我来说是新的概念,但是代码实现却是一样的,因而我并没有很在意这个模式.然而最近开始读Netty源码,而Reactor模式是很多介绍Netty的文章中被大肆宣传的模式,因而我再次问自己,什么是Reacto

为什么无等待如此重要

原文地址 ,译文链接,译者:张军,校对:梁海舰 无锁(完全同步) 想象一下,一个无锁算法或数据结构有一个方法,这个方法所有执行过程都需要同步.假设在单线程模式下这个方法每次调用需要10ns,而每增加一个线程调用这个方法,将在同步状态(变量)上产生争用. 很显然,如果只有一个线程,每次调用该方法到返回平均时间都为10ns,我们称之为:每10ns完成的任务数:如果你增加更多的线程,他们将会增加其他线程执行完成的时间,这是因为同一时刻只有一个线程能获得锁: 记住,无锁(Lock-Free)保证一个线程

深度解析Java8 – AbstractQueuedSynchronizer的实现分析(上)

本文首发在infoQ :www.infoq.com/cn/articles/jdk1.8-abstractqueuedsynchronizer 前言: Java中的FutureTask作为可异步执行任务并可获取执行结果而被大家所熟知,通常可以使用future.get()来获取线程的执行结果,在线程执行结束之前,get方法会一直阻塞状态,直到call()返回,其优点是使用线程异步执行任务的情况下还可以获取到线程的执行结果,但是FutureTask的以上功能却是依靠通过一个叫AbstractQueu

聊聊并发(一)深入分析Volatile的实现原理

本文属于作者原创,原文发表于InfoQ:http://www.infoq.com/cn/articles/ftf-java-volatile 引言 在多线程并发编程中synchronized和Volatile都扮演着重要的角色,Volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的"可见性".可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值.它在某些情况下比synchronized的开销更小,本文将深入分析在硬件层面上Inter