Java并发大师Brain Goetz和Doug Lea是Java并发方面最权威的人物,他的文章绝对是最具有参考价值的,值得仔仔细细的推敲和研究. Brain Goetz 中文地址:http://www.ibm.com/developerworks/cn/java/j-jtp/ https://www.ibm.com/developerworks/cn/views/java/libraryview.jsp?site_id=10&contentarea_by=Java&sort_by=Dat…
如果IT的历史,是以人为主体串接起来的话,那么肯定少不了Doug Lea.这个鼻梁挂着眼镜,留着德王威廉二世的胡子,脸上永远挂着谦逊腼腆笑容,服务于纽约州立大学Oswego分校计算机科学系的老大爷. 说他是这个世界上对Java影响力最大的个人,一点也不为过.因为两次Java历史上的大变革,他都间接或直接的扮演了举足轻重的角色.一次是由JDK 1.1到JDK 1.2,JDK1.2很重要的一项新创举就是Collections,其Collections的概念可以说承袭自Doug Lea于1995年发布…
学习 Doug Lea 大神写的--Scalable IO in Java 网络服务 Web services.分布式对象等等都具有相同的处理结构 Read request Decode request Process service Encode reply Send reply 基础的网络设计 每一个处理的 handler 都在各自的线程中处理. 代码示例 public class Server01 implements Runnable { @Override public void ru…
这是why的第 69 篇原创文章 BUG描述 一个编号为 8073704 的 JDK BUG,将串联起我的这篇文章. 也就是下面的这个链接. https://bugs.openjdk.java.net/browse/JDK-8073704 这个 BUG 在 JDK 9 版本中进行了修复.也就是说,如果你用的 JDK 8,也许会遇到这样的问题. 先带大家看看这个问题是怎么样的: 这个 BUG 说:FutureTask.isDone 方法在任务还没有完成的时候就会返回 true. 可以看到,这是一个…
作者简介 Dong Lea任职于纽约州立大学奥斯威戈分校(State University of New York at Oswego),他发布了第一个广泛使用的java collections框架实现,他实现了java.concurrent.*(JDK5开始至今). 论文译文开始: 论文摘要 本论文介绍一种支持并行编程方式的Java框架,主要包括设计.实现和性能分析三个部分.基于它,一个任务被(递归的)划分为并行执行的子任务,父任务等待子任务的执行完成,并组装最后结果.总体设计是Cilk语言采…
yum install -y unzip zip 配置host vi /etc/host172.19.68.10 zk1 1. zookeeper zookeeper下载地址 http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz tar -zxvf apache-zookeeper-3.4.14.tar.gz mv apache-zookeeper-3.4.14 zookeeper c…
前言 在分布式系统中,由于redis分布式锁相对于更简单和高效,成为了分布式锁的首先,被我们用到了很多实际业务场景当中. 但不是说用了redis分布式锁,就可以高枕无忧了,如果没有用好或者用对,也会引来一些意想不到的问题. 今天我们就一起聊聊redis分布式锁的一些坑,给有需要的朋友一个参考. 1 非原子操作 使用redis的分布式锁,我们首先想到的可能是setNx命令. if (jedis.setnx(lockKey, val) == 1) { jedis.expire(lockKey, ti…
1. CopyOnWriteArrayList的简介 java学习者都清楚ArrayList并不是线程安全的,在读线程在读取ArrayList的时候如果有写线程在写数据的时候,基于fast-fail机制,会抛出ConcurrentModificationException异常,也就是说ArrayList并不是一个线程安全的容器,当然您可以用Vector,或者使用Collections的静态方法将ArrayList包装成一个线程安全的类,但是这些方式都是采用java关键字synchronzied对…
 0.遍历结果集并构造对象如果你是个时髦的开发者而不是专业人员,显然你从某篇博客中读过有开发者遇到Hibernate的“性能问题”,因而认为ORM都不好,觉得手动编码“明显更好”.喜欢的话你当然可以用JDBCTemplate之类,但是谢谢你的对它们的无端指责,我还会继续用我的JPA/Hibernate. 1. 在交易型系统中写PL/SQL随着时间推移,你系统中的业务逻辑会被逐步迁移到关系数据库中,所有宝贵的设备交易都会迁移到数据库中去.有的人将它们转换为类似COBOL的处理方式,绑定到调用物化视…
William F. Buckley.Jr 曾经说过,“保守主义者是那些逆着历史潮流不断喊停的人,其他人都不愿意这么做或者对他们这么做显得没有耐性”.虽然我对此了解不多,但是每次看到有Java开发人员做以下事情或者我自己被迫做这些事情时,总想跳出来叫停. 遍历结果集并构造对象 while (result.next()) { String name = result.getString(“name”); String address = result.getString(“address”); S…