- 浏览: 215416 次
- 性别:
- 来自: 哈尔滨
最新评论
-
lizhenzhendebishe:
提示An error was discovered proce ...
WebService:Axis客户端调用需要身份验证的CXF服务 -
yuanliangding:
学习了。不太接触底层的东西
UNIX系统的IO模型 -
_copythat:
加油,。。。
阳光总会在风雨之后洒向苍茫 -
donlianli:
莫非去淘宝菜鸟网络了?
阳光总会在风雨之后洒向苍茫 -
菜鸟小于:
我也是哈尔滨的,在广州做了三年的开发,可是实际上我们是在维护一 ...
阳光总会在风雨之后洒向苍茫
文章列表
并行计算框架的Java实现--系列三
- 博客分类:
- java
接上篇并行计算框架的Java实现--系列二
优化锁,之前的锁是采用一个static的Object实现的,这样会有一个问题,如果我创建了多个Executer,那么所有Job都会持有一把锁,既影响性能,也容易出现死锁的情况。所以,改成每个Executer持有一把锁。
Executer代码如下:
public class Executer {
//存储任务的执行结果
private List<Future<Object>> futres = new ArrayList<Future<Object>>();
//条件队列锁,以及 ...
并行计算框架的Java实现--系列二
- 博客分类:
- java
接上篇并行计算框架的Java实现--系列一 。
增加对结果的处理:
1、修改Job,实现Callable接口
public abstract class Job implements Callable<Object> {
@Override
public Object call() throws Exception {
Object result = this.execute();//执行子类具体任 ...
最近的工作需要统计一些复杂的报表,为了提高效率,想用多线程去实现,但要在所有线程完成统计任务后,将结果汇总。所以在思考有没有什么办法解决,之所以是“系列一”是因为我想记录下我的思考过程。
1、首先设计一个Executer,负责任务的执行和汇总:
public class Executer {
//计算已经派发的任务数(条件谓词)
public static int THREAD_COUNT = 0;
//线程池
private Executor pool = null;
public Executer() {
this(1);
}
public Execut ...
前些天和同事交流,他说ant非常好用,他一直在用,学习资料共享后。这几天研究了一下,还真是不错,这里感谢河东的分享。
之前做过一个java的后台项目需要引入很多jar包,先是用fatjar的方式,将整个工程打成一个jar包进行发布的,一旦修改又要重新打包,上传服务器,费时费力。后来研究了一下MANIFEST.MF文件,可以将引用jar配置到这个文件里,虽然是成功了,但MANIFEST.MF的配置太过麻烦,格式要求过于严格。为此我还专门写了一段生成MANIFEST.MF的代码(见之前的文章MANIFEST.MF的应用以及如何读取jar包外的log4j.properties)。下面我们一步一步用a ...
JDK1.4 的 NIO 有效解决了原有流式 IO 存在的线程开销的问题,在 NIO 中使用多线程,主要目的已不是为了应对每个客户端请求而分配独立的服务线程,而是通过多线程充分使用用多个 CPU 的处理能力和处理中的等待时间,达到提高服务能力的目的。 多线程的引入,容易为本来就略显复杂的 NIO 代码进一步降低可读性和可维护性。引入良好的设计模型,将不仅带来高性能、高可靠的代码,也将带来一个惬意的开发过程。
线程模型
NIO 的选择器采用了多路复用(Multiplexing)技术,可在一个选择器上处理多个套接字,通过获取读写通道来进行 IO 操作。由于网络带宽等原因,在通道的读、写操作中是 ...
private HttpClient initHttpClient() {
if(httpclient == null){
try {
X509TrustManager tm = new X509TrustManager() {
public void checkClientTrusted(X509Certificate[] arg0,
String arg1) throws CertificateException {
}
public void checkServerTrusted(X509Certificate[] arg0 ...
String path = "";
URL url = Thread.currentThread().getContextClassLoader().getResource("/");
if(url != null)
path = url.getPath();
else
path = System.class.getResource("/").getPath();
path = path + "/sso-config.properties";
System.out.println(path); ...
如何防止代码腐烂
转自:http://sd.csdn.net/a/20111109/307179.html#postcomment
1.程序员的成长
新手的代码
新手的代码没有经验,基本不考虑代码设计,代码规模稍稍大一点则自己就乱了。
进阶者的代码
小规模的时候
大规模的时候
进阶者已经知道如何设计代码,懂得代码规则,但一般局限于一个模块。规模一大,模块间的调用就会比较混乱,难以维护。
有经验者的代码
有经验者的代码,模块内部代码整洁,模块之间层次清晰,有设计模式,有成熟的体系。可以保持长期的代码整洁。
- 2012-04-07 19:34
- 浏览 850
- 评论(0)
转自:http://www.iteye.com/topic/470396
在开源java工具包里,最有名的当属apache commons。其中,以commons lang包最为开发者熟知。
但是它作为第三方包存在,或多或少给开发者带来一些不便利。
面包牛奶总是会有的,从java7开始,lang包中的一些优秀工具方法,将被正式引入JDK。
下面是各个已确定被引入的工具类或方法说明。
1, 新增类 java.util.Objects (JDK对工具类的命名一向是以s结尾,例如Collections, Arrays)
A, 空指针安全的 equals, hashCode, toStrin ...
- 2012-04-05 23:37
- 浏览 1082
- 评论(0)
转:http://fly.b3log.org/articles/2012/01/30/1327919169428.html
引言:
CentOS自带的yum源中rpm包数量有限,很多时候找不到我们需的软件包,(例如:要安装网络连接查看软件iftop,默认设置下无法使用yum命令安装),下面教大家在CentOS 6.2中(以32位系统为例,64位系统安装方法一样),使用第三方yum源来安装更多软件包。
一、安装CentOS yum源优先级插件yum-priorities
yum install yum-priorities #输入y安装
二、设置CentOS默认y ...
在有Apache做负载均衡的时候使用request.getRemoteAddr();获取的是Apache的IP
,可以通过如下方式获取,先记下来做个备忘。
String ip = request.getHeader("x-forwarded-for");
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
...
MANIFEST.MF是jar文件的配置文件,在用eclipse或jar命令生成jar包,都会在jar文件里生成这个文件,默认的MANIFEST.MF对我们来说没有什么意义,需要手工的修改一下,简单的例子如下:
Manifest-Version: 1.0
Main-Class: com.XMLTools
Class-Path: lib/dom4j-1.6.1.jar
lib/jaxen-1.1-beta-7.jar
lib/log4j-1.2.14.jar
lib/sitemesh-2.2.1.jar
一定要注意回车和空格。在这里我们指定该jar文件的main函数以及引入的第三方j ...
转自:http://www.diybl.com/course/3_program/java/javajs/20110826/558997.html
从hadoop框架与MapReduce模式中谈海量数据处理
前言
几周前,当我最初听到,以致后来初次接触Hadoop与MapReduce这两个东西,我便稍显兴奋,觉得它们很是神秘,而神秘的东西常能勾起我的兴趣,在看过介绍它们的文章或论文之后,觉得Hadoop是一项富有趣味和挑战性的技术,且它还牵扯到了一个我更加感兴趣的话题:海量数据处理。
由此,最近凡是空闲时,便在看“Hadoop”,“MapReduce”“海量数据处 ...
- 2011-10-02 22:07
- 浏览 870
- 评论(0)
package telnet;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;
/**
* Telnet简单实现
*
* @author xueliang 2010.11.6
*
*/
public class Telnet {
private static f ...