归档之于 ‘ 2015 年8 月

Java集合-List

原文链接 译者:祖强

java.util.List接口是java.util.Collection 接口的一个子接口。它表示对象的一个有序列表,意味你可以特定的顺序访问元素,也可以通过索引访问。也可以向一个 List中多次添加重复的元素。
阅读全文

Java 9中将移除 Sun.misc.Unsafe

原文链接    译者:曲东方

灾难将至,Java 9中将移除 Sun.misc.Unsafe

Oracle 正在计划在Java 9中去掉 sun.misc.Unsafe API。 这绝对将是一场灾难,有可能会彻底破坏整个 java 生态圈。 几乎每个使用 java开发的工具、软件基础设施、高性能开发库都在底层使用了 sun.misc.Unsafe。 下面是上面链接中文档提到一个小列表:

阅读全文

《 Java并发编程从入门到精通》第5章 多线程之间交互:线程阀

javaC

作者:张振华    购买链接:天猫商城

(投入多少,收获多少。参与多深,领悟多深,京东,亚马逊,当当均有销售。)

 


5.1 线程安全的阻塞队列BlockingQueue

(1)先理解一下Queue、Deque、BlockingQueue的概念:

Queue(队列) :用于保存一组元素,不过在存取元素的时候必须遵循先进先出原则。队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。在队列这种数据结构中,最先插入的元素将是最先被删除的元素;反之最后插入的元素将是最后被删除的元素,因此队列又称为“先进先出”(FIFO—first in first out)的线性表。

阅读全文

Java集合-Collection

原文链接   作者:Jakob Jenkov  译者:祖强

Collection接口是 (java.util.Collection)是Java集合类的顶级接口之一。所以不能直接实例化一个Collection,但是可以实例化它的一个子类,你或许经常把这些子类作为一个Collection统一探讨。在这篇文章中,你将看到如何处理。

阅读全文

Apache Storm 官方文档 —— 使用 Maven 构建 Storm 应用

原文链接    译者:魏勇

在开发拓扑的时候,你需要在 classpath 中包含 Storm 的相关 jar 包。你可以将各个 jar 包直接包含到你的项目的 classpath 中,也可以使用 Maven 将 Storm 添加到依赖项中。Storm 已经集成到 Maven 的中心仓库中。你可以在项目的 pom.xml 中添加以下依赖来将 Storm 包含进项目中:

阅读全文

Apache Storm 官方文档 —— 在生产环境中运行拓扑

原文链接    译者:魏勇

在生产环境集群中运行拓扑的方式与本地模式非常相似,主要包括以下几个步骤:

阅读全文

Apache Storm 官方文档 —— 问题与解决

原文链接    译者:魏勇

本文介绍了用户在使用 Storm 过程中遇到的问题与相应的解决方法。

阅读全文

Apache Storm 官方文档 —— 本地模式

原文链接    译者:魏勇

本地模式是一种在本地进程中模拟 Storm 集群的工作模式,对于开发和测试拓扑很有帮助。在本地模式下运行拓扑与在集群模式下运行拓扑的方式很相似。

阅读全文

Apache Storm 官方文档 —— Storm 集群安装配置

原文链接    译者:魏勇

本文详细介绍了 Storm 集群的安装配置方法。如果需要在 AWS 上安装 Storm,你应该先了解一下 storm-deploy 项目。storm-deploy 可以自动完成 E2 上 Storm 集群的准备、配置、安装的全部过程,同时还设置好了 Ganglia,方便监控 CPU、磁盘以及网络的使用信息。

阅读全文

Java Date Time 教程-java.sql.Timestamp

原文链接 作者:Jakob Jenkov  译者:魏嘉鹏

Javajava.sql.Timestamp类在JDBC API中被使用。如果你需要在java.sql.PreparedStatement上设置日期+时间或者从java.sql.ResultSet获取日期+时间,你将会和java.sql.Timestamp打交道。
实际上,java.sql.Timestamp继承于java.util.Date,所以你可以用java.util.Date做的任何事同样适用于java.sql.Timestamp。查阅 java.util.Date 了解更多的信息。
阅读全文

Spring4.2新特性(一)

1. 简介.

前些天spring4.2出来了, 从GA开始就一直在跟了, 前2天看完了所有官方Release Notes, 觉得记录下我比较感兴趣的特性.

我看的是4.2GA, 4.2RC3, 4.2RC2, 4.2RC1。4.04.1的新特性, 可以看看涛哥的博客。这里主要是讲照官方文档里面列的, changelog里面太多了 -.-!

阅读全文

Java Date Time 教程-java.sql.Date

原文链接 作者:Jakob Jenkov  译者:魏嘉鹏

Javajava.sql.Date类在JDBC API中被使用。如果你需要在java.sql.PreparedStatement上设置日期或者从java.sql.ResultSet获取日期,你将会和java.sql.Date打交道。
实际上,java.sql.Date继承于java.util.Date,所以你可以用java.util.Date做的任何事同样适用于java.sql.Date。查阅 java.util.Date 了解更多的信息。
阅读全文

《 Java并发编程从入门到精通》目录和序言

目 录

第一部分:线程并发基础

 


第1章 概念部分   1
1.1 CPU核心数、线程数 (主流cpu,线程数的大体情况说一下) 1
1.2 CPU时间片轮转机制 2
1.3 什么是进程和什么是线程 4
1.4 进程和线程的比较 5
1.5 什么是并行运行 7
1.6 什么是多并发运行 8
1.7 什么是吞吐量 9
1.8  多并发编程的意义及其好处和注意事项 10
1.9  分布式与并发运算关系 11
1.10 Linux和Window多并发可以采取不的一样机制(apache和tomcat??) 6
第2章 认识Java里面的Thread       12
2.1 线程的实现三种方法 (先感受一下创建几个多线程方法实例演练)12
2.2 Thread里面的属性和方法 (通过工具看看能不能监控到thread里面的一些属性值)16
2.3 线程的生命周期 19
2.4 什么是守护线程 31
2.5 线程组 33
2.6 当前线程副本ThreadLocal(用意和实际应用场景) 35
2.7 线程异常的处理(单个和组)38
第3章 Thread安全     39
3.0 线程的内存模型
3.1 什么是不安全(写个代码例子多并发带来的一些问题,变量互串,相互影响) 39
3.2 什么是安全(写个代码例子,安全的三种(多实例,加锁,线程安全的集合类)情况,引出锁)         43
3.3 第一种锁:隐式锁,又称线程同步synchronized(举几个例子实际演示一下,及其写法注意,带来的额外开销) 45
3.4 第二种锁:显示锁,Lock;及其与synchronized的区别(ReentrantReadWriteLock) 49
3.5 什么是死锁 53
3.6 看如下代码的锁有用吗 55
3.7 关键字:volatile       57
3.8 原子操作:atomic(atomic包FutureTask, AtomicLong等)   59
3.9 线程同步和锁的原理(有待弄清楚锁的运行机制和原理) 61
3.10 单利模式的写法 63
第4章 线程安全的集合类     64
4.1 java.util.concurrent. ConcurrentMap 64
4.2 java.util.concurrent.ConcurrentHashMap 66
4.3 java.util.concurrent. CopyOnWriteArrayList 68
4.4 java.util.concurrent. CopyOnWriteArraySet 70
4.5 非concurrent下面的线程安全集合类(Hashtable 和 Vector 和StringBuffer) 72
4.6 集合类安全的实现原理剖析 75

第二部分:线程并发晋级之高级部分 75


第5章 多线程之间交互:线程阀
5.1 线程安全的阻塞队列BlockingQueue (详解一翻java.util.concurrent.ConcurrentLinkedDeque 和java.util.concurrent. ConcurrentLinkedQueue) 76
5.2 同步计数器CountDownLatch   81
5.3 循环障碍CyclicBarrier   84
5.4 信号装置Semaphore 87
5.5 任务机制FutureTask 90
第6章 线程池 115
6.1 什么是线程池 90
6.2 newFixedThreadPool的使用   92
6.3 newCachedThreadPool 的使用 94
6.4 newSingleThreadExecutor的使用(插图,原理) 96
6.5 线程池的好处(未使用的时候的情况,使用后的情况) 98
6.4 认识ExecutorService(ThreadFactory先创建一个线程及其参数的详细讲解,如何自定义线程池) 100
6.5 线程池的原理 106
6.6 线程池在工作中的错误使用 112
第7章 JDK7新增的Fork/Join 115
7.1 什么是Fork/Join 架构 115
7.2 创建实际使用Fork/Join 线程池118
7.3 合并任务的结果 123
7.4 工作原理 126
7.5 异步运行任务 130
7.6 在任务中抛出异常 135
7.7 结束任务 140
7.8 实际应用场景 143

第三部分:实际的使用与监控与拓展


 

第8章 线程,线程池在实际互联网项目开发中的应用
8.1 Servlet线程的设计
8.2 线程池如何合理设计与设置
8.3 Tomcat中线程池如何合理设置
8.4 Nginx线程池
8.5 数据库连接池
8.6 工作中如何实现在分布式系统中实现高并发
第9章 线程的监控及其日常工作中如何分析
9.1 Java线程池的监控
9.2 ForkJoin的监控
9.3 Java内存模型
9.4 可视化监控工具的使用
9.5 Linux线程分析监控使用方法
9.6 Linux分析监控的运行脚本
9.7 Eclipse里面如何调试并发程序
9.8 如何通过压力测试,测试服务器的抗压能力
9.9 MultithreadedTC测试并发简单介绍
第10章 线程在Android开发中的体现
10.1Android进程的基本知识
10.2Android进程的生命周期
10.3Android中Activity的生命周期
10.4Android线程的运行机制
10.5Android异步线程的处理方法
10.6Android异步线程的原理与实现

附录一:JVM的参数
附录二:Jstat的语法
附录三:Jstat中的一些术语的中文解释
附录四:Tomcat里面的server.xml中Executor的参数
附录五:Thread的API
结束语

 序言


阅读全文

阿里感悟(九)-如何才能晋升

如何才能晋升?

努力突破自己,超越本层级的能力,并创造当前层级的人创造不出来的价值。

如何才能突破自己的能力?

首先要做的是改变习惯。在阿里很流行的一句话是,当自己不舒服的时候就是自己成长的时候。比如老大和我说要学会到先规划再做事情,而不是想到哪做到哪。这句话看起来简单,但是做起来很难,因为要打破自己已有的做事习惯,就像你习惯8点起床,现在让你每天6点起床,你肯定会很不习惯。

阅读全文

LockSupport 源码阅读

在java中,要让线程等待最普通的方法是调用Object.wait()方法,

Causes the current thread to wait until another thread invokes the notify() method for this object.

但是当我阅读JUC(java.util.concurrent)的源码时发现这个包不是这样做的, 我跟踪CountDownLatch.await()调用,最后跟到了LockSupport.park()方法里, 这里调用的是 unsafe.park()方法来block线程。

阅读全文

return top