Java7 ForkJoin入门实例源码教程



Java7 ForkJoin入门实例源码教程。Java7引入了Fork Join的概念,来更好的支持并行运算。顾名思义,Fork Join类似与流程语言的分支,合并的概念。也就是说Java7 SE原生支持了在一个主线程中开辟多个分支线程,并且根据分支线程的逻辑来等待(或者不等待)汇集,当然你也可以fork的某一个分支线程中再开辟Fork Join,这也就可以实现Fork Join的嵌套。

有两个核心类ForkJoinPool和ForkJoinTask。

ForkJoinPool实现了ExecutorService接口,起到线程池的作用。所以他的用法和Executor框架的使用时一样[......]

Read more

Servlet中的Session与Cookie详解



Servlet中的Session与Cookie详解,虽然session机制在web应用程序中被采用已经很长时间了,但是仍然有很多人不清楚session机制的本质,以至不能正确的应用这一技术。本文将详细讨论session的工作机制并且对在Java web application中应用session机制时常见的问题作出解答。
一、术语session
在我的经验里,session这个词被滥用的程度大概仅次于transaction,更加有趣的是transaction与session在某些语境下的含义是相同的。
session,中文经常翻译为会话,其本来的含义是指有始有终的一系列动作/消息,比如打[......]

Read more

Java7 AutoCloseable入门实例教程

Java7 AutoCloseable入门实例教程。AutoCloseable接口,表示一种不再使用时需要关闭的资源。这个接口下只有一个方法,close()。这个方法在try-with- resource语法下会被自动调用,支持抛出Exception,当然它也鼓励抛出更详细的异常。close()建议不要抛出线程中断的 InterruptedException。对这个接口的实现,规范强烈建议close()是幂等的,也就是说多次调用close()方法和一次调用的结 果是一样的。

AutoCloseable的简单实现:

public class MyResource implements[......]

Read more

Java如何直接访问内存教程

Java如何直接访问内存教程。Java被设计成一个安全,可管理的环境,然而 Java HotSpot有一个后门,提供了对低级别的,对直接内存和线程的操作。这个后门是—-sun.misc.Unsafe。这个类在JDK中有广泛的应用,例如,java.nio和java.util.concurrent。很难想象在日常开发中使用这些危险的,不可移植和未经校验的API。然而,Unsafe提供一种简单的方法来观察HotSpot JVM内部的一些技巧。

获取Unsafe
sun.misc.Unsafe这个类的访问是受限的,它的构造方法是私有的,相应的工厂方法要求必须被Bootloader载入才能使用,[......]

Read more

Java ArrayBlockingQueue源码实例介绍

Java ArrayBlockingQueue源码实例介绍。ArrayBlockingQueue是Java并发框架中阻塞队列的最基本的实现,分析这个类就可以知道并发框架中是如何实现阻塞的。

笔者工作了一两年之后,还不知道阻塞是如何实现的,当然有一个原因是前期学习的东西比较杂,前后端的东西的懂一点,但是了解的不够深刻,我觉得这是编程学习的禁忌,不管是前端还是后端,在工作3年的时候,你应该有一个方向是拿得出手,见得了人的。

转回正题,ArrayBlockingQueue实现阻塞队列的关键在与,对锁(Lock)和等待条件(Condition)的使用的使用,这两个实现的基本功能类似域wai[......]

Read more

Webx 浅析

Webx 浅析。

Webx是什么?

在本文中的Webx都是指webx3.0.11。

从本质上讲,Webx可以做为一个spring容器来使用,只要是spring允许的一切,webx都能做。Webx的特色功能还是在web上面,不仅仅是作为spring容器来使用,而是一套完整的扩展性强的MVC框架。

一、框架选型

Webx以spring框架为核心,webx3.0.11的框架结构是这样子,spring3.0.7,包含的spring模块有:core,aop,mvc,jdbc,orm,transaction。日志模块依赖slf4j和logback。模板引擎默认依赖3种做为[......]

Read more

Webx 核心机制图文介绍

Webx 核心机制图文介绍。

在本文中的Webx都是指webx3.0.11。

Webx的主题功能都是暴露成服务组件,主要的服务组件如下:

服务组件

1、RequestContext

2、Pipeline

3、资源载入:Classpath路径载入,本地路径路径载入,远程路径路径载入。

4、模板引擎:Velocity,Freemark,JSP。

5、邮件服务:基于JavaMail,纯文本邮件,HTML邮件,带附件邮件,基于模板的邮件。

6、表单

校验器:必填项,日期格式,字符串格式,数字格式,邮件地址格式,条件选择语句,文件上传校验[......]

Read more

大型网站有哪些关键特性分析

大型网站有哪些关键特性分析。网站需要具有良好的可伸缩性,来应对不断增长的访问量和数据量。《程序员》杂志5月刊的《可伸缩性的10年探索:知名网站的技术发展历程》一文中介绍了一些Alexa排名较前的网站的技术发展历程,本文将结合提及的Google、Facebook、Twitter等网站的技术发展历程,总结它们在可伸缩性、可用性、高性能以及低成本四点上通常采用的技术。

可伸缩

可伸缩分为垂直伸缩和水平伸缩两类,垂直伸缩通过升级机器的硬件来解决问题,水平伸缩通过增加机器来解决问题。不同网站在可伸缩上采用了不同的策略。例如,Google完全依赖水平伸缩来解决问题,而其他网站多数是依赖垂直伸缩来解决数[......]

Read more

Dubbo集群特性分析介绍

Dubbo集群特性分析介绍。Dubbo在集群上有这样的一些特性:容错性,负载均衡,访问规则。支持各种主流的远程访问协议。

容错性

当客户端访问服务端的时候,服务端出错或者网络出现问题,都会使得远程访问失败,失败是不可避免的,所以Dubbo制定了一些失败补偿策略给开发者使用,主要有如下的策略:

1、重试

失败自动切换,当出现失败,重试其它服务器。(缺省)。

通常用于读操作,但重试会带来更长延迟。

可通过retries=”2″来设置重试次数(不含第一次)

2、快速失败

快速失败,只发起一次调用,失败立即报错。

通常用于非幂等性的写操作,比如新增记录。[......]

Read more

Tair存储引擎资料分享

Tair存储引擎资料分享。

Tair概述

Tair是一个分布式系统,它从整体来看,是由configserver和dataserver组成的,dataserver负责数据存储,客户端首先去到configserver拿到机群的分布状态,接下来会根据数据来找到现在数据应该在哪个dataserver,然后直接跟dataserver访问。configserver一般分Master和Slave两台,当其中一台有问题的时候,客户端那边会主动上另外一台访问,保证它的容灾性。configserver是一个比较轻量化中心节点,即使两台configserver全部当掉,客户端还是可以继续服务。

[......]

Read more