肿瘤大数据挖掘中经常需要处理上百亿行的文本文件,这些文件往往高达数百GB,假如文件结构简单统一,那么用sed和awk 处理是非常方便和快速的.但有时候会遇到逻辑较为复杂的处理流程,这样我一般会用JAVA来处理.但由于JAVA是单线程的,因此对于实验室多核服务器来说,能充分有效的利用起每个核会方便不少,那么这个时候就推荐用多线程来并发(并行)处理任务,从而达到运算速度倍速的提升. 这里举一个并行计算的例子.例子比较简单,主要是对三个数进行累加,最后输出结果.我们分别用单线程和多线程来执行,其中单线…
GitHub Java项目推荐|功能丰富的 Java 工具包|提高开发效率 功能丰富的 Java 工具包.它帮助我们实现了常用的工具方法,从而减少代码的体积,提高开发效率.该项目最初是作者工作项目中的util模块,后来慢慢积累并加入更多非业务相关工具类方法.经过整理修改,最终形成丰富的开源工具集.示例代码: int a = 1;//aStr为"1"String aStr = Convert.toStr(a); 项目分析 仓库名称:hutool 标星(star):7237 (很不错的实用…
可供程序利用的资源(内存.CPU时间.网络带宽等)是有限的,优化的目的就是让程序用尽可能少的资源完成预定的任务.优化通常包含两方面的内容:减小代码的体积,提高代码的运行效率.本文讨论的主要是如何提高代码的效率.在Java程序中,性能问题的大部分原因并不在于Java语言,而是在于程序本身.养成好的代码编写习惯非常重要,比如正确地.巧妙地运用java.lang.String类和java.util.Vector类,它能够显著地提高程序的性能.下面我们就来具体地分析一下这方面的问题. 1.     尽量…
一,多线程 多线程是提高程序效率,避免资源浪费的很好的解决方案,下面来慢慢的介绍多线程的一些基本知识,而这些是晋级高级不可或缺的一部分 1,Thread类 类实现多线程需要实现Runnable接口,我们跟踪一下源码,如下所示: public class Thread implements Runnable { /* Make sure registerNatives is the first thing <clinit> does. */ private static native void…
java多线程15 :wait()和notify() 的生产者/消费者模式 在这一章已经实现了  wait/notify 生产消费模型 利用await()/signal()实现生产者和消费者模型 一样,先定义一个缓冲区: public class ValueObject { public static String value = ""; } 换种写法,生产和消费方法放在一个类里面: public class ThreadDomain41 extends ReentrantLock {…
在一个千万级的数据库查寻中,如何提高查询效率?分别说出在数据库设计.SQL语句.java等层面的解决方案. 解答: 1)数据库设计方面: a. 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. b. 应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后…
Visual Stuido 是一款强大的Windows 平台集成开发工具,你是否好好地利用了它呢? 显示行号 有些时候(比如错误定位)的时候,显示行号将有利于我们进行快速定位. 如何显示 1. 工具 / 选项 / 文本编辑器 -> 选择对应的语言 2. 勾选 “行号” 避免剪切或复制空白行 有些时候当我们复制了一行数据正打算粘贴到一个空白行的时候,手一抖,V变成了C,结果复制了一条空白行.这会让人很郁闷,当然你可以通过使用 Ctrl + Shift + V 从剪切版中找到之前复制的那一项,但是毕…
转载:http://developer.51cto.com/art/201012/241243.htm 做为了一个java开发人员,总是为因为要增加一个类,或是增加删除一个方法,甚至修改一个小处代码而不得不再次重启服务器.而启动服务器总是那么的浪费时间.一个小时的编程 10 分钟左右,这效率.... 而php有java更有优势在于它是动态加载的.而为什么java就不可以呢? 你想要什么?可以加方法?可以加类?可以动态的随意更改java代码又不重启服务器? 现在这些都可以实现了,今天重大发现这些都…
自编工具总是临时抱佛脚来得顺溜,宜常备手边以提高工作效率: package com.hy; import java.io.File; /** * 日常工作常用的一些工具方法 * @author 逆火 * */ public class CommonTools { /** * 列出某目录下文件名,在控制台输出 * @param dir 目录 * @param extension 文件扩展名,*或all代表全部 */ public static void listFilesUnderDir(Stri…
前面针对多线程相关知识点进行了学习,那么我们来来看看常见的面试题: 1. 空中网面试题1 package com.kongzhongwang.interview; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQueue; //myeclipse强大功能:将代码直接复制到项目的src路径下可以自动相应生成包名和类名 /** * * 空中网面试题1:现有程序代码模拟产生16个日…