- 浏览: 579028 次
最新评论
文章列表
1) 使用T赋值的都是为具体类型.,我们用通配符(?)代替了:
? 叫有限制的通配符, 用于赋值的类型不确定的时候。2) 观察如下代码:
package genericTest;
public class Parent {
}
package genericTest;
public class Child extends Parent {
}
package genericTest;
import java.util.ArrayList;
import java.util.List;
public class Test {
public static voi ...
- 2016-11-23 20:35
- 浏览 387
- 评论(0)
package logTest;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class LogTest {
public static final Log LOG =
LogFactory.getLog(LogTest.class);
public void test() {
LOG.info("test1") ;
LOG.debug("test1") ;
...
- 2016-11-06 22:51
- 浏览 714
- 评论(0)
Apache common logging是一种log的框架接口,它本身并不实现log记录的功能,而是在运行时动态查找目前存在的日志库,调用相关的日志函数,从而隐藏具体的日志实现
log4j是具体的日志实现,真正负责"写"日志的这个功能
common logging本身不是log,你可以把它看做是一个日志的接口
而log4j就是日志的实现
使用common logging方式实现日志,主要的原因在于可以忽略底层的日志实现,或者说为以后的日志实现库的更换提供透明界面
你可以考虑下,假设从log4j更换为logback,势必要重写所有原本使用log4j的源代码,而使用c ...
- 2016-11-01 21:01
- 浏览 250
- 评论(0)
1. 查找对应页数: 有的文章A在ACM中检出来只有文章号,在文章A下方cited选项中找出引用该文章的文献B,C,D等,在B,C,D等文献的reference选项中
能找到文章A的对应页数。包括书籍的检索,同理。
2.有时候google学术搜索查出来没有ACM库的选项,只给出UseNix的链接(怀疑是版权问题)。在搜索结果下方的选项点击cited by,就会出现很多引用该文章的,在这里面只要有ACM库的文献,重复1的操作即可。
- 2016-10-29 02:08
- 浏览 547
- 评论(0)
package concurrencyTest;
import java.util.Iterator;
import java.util.concurrent.ConcurrentHashMap;
public class ConcurrencyTest2 {
public static Object mutex = new Object() ;
/**
* @param args
*/
public static void main(String[] args) {
ConcurrentHashMap<Integer, Integer> map = new ...
- 2016-10-02 20:56
- 浏览 430
- 评论(0)
看这段代码package concurrencyTest;
import java.util.Iterator;
import java.util.concurrent.ConcurrentHashMap;
public class ConcurrencyTest2 {
/**
* @param args
*/
public static void main(String[] args) {
ConcurrentHashMap<Integer, Integer> map = new ConcurrentHashMap<Integer, Integer&g ...
- 2016-09-25 00:21
- 浏览 359
- 评论(0)
注意到IncomingVertexMessageManager (Hama0.7.1)类中有如下代码:
@Override
public GraphJobMessage poll() {
if (mapMessages.size() > 0) {
return mapMessages.poll();
} else {
if (storage.size() > 0 && it.hasNext()) {
GraphJobMessage m = it.next();
it.remove ...
- 2016-09-24 16:28
- 浏览 331
- 评论(0)
由于ConcurrecyHashMap允许并发修改,无需加锁,因此测试其性能
package concurrencyTest;
import java.util.Iterator;
import java.util.concurrent.ConcurrentHashMap;
public class ConcurrencyReadTest {
/**
* @param args
*/
public static void main(String[] args) {
Concurren ...
- 2016-09-23 21:31
- 浏览 405
- 评论(0)
package concurrencyTest;
import java.util.Iterator;
import java.util.concurrent.ConcurrentHashMap;
import org.apache.hama.graph.GraphJobMessage;
public class ConcurrencyReadTest {
/**
* @param args
*/
public static void main(String[] args) {
ConcurrentHashMap<Integer, Integer> map ...
- 2016-09-23 01:00
- 浏览 277
- 评论(0)
遇到如下异常
java.lang.IllegalStateException
at java.util.concurrent.ConcurrentHashMap$HashIterator.remove(ConcurrentHashMap.java:1366)
at org.apache.hama.graph.IncomingVertexMessageManager.poll(IncomingVertexMessageManager.java:98)
at org.apache.hama.graph.IncomingVertexMessageManager.poll(Incom ...
- 2016-09-23 00:12
- 浏览 1820
- 评论(0)
<span style="font-family: Arial, Helvetica, sans-serif;">import java.util.ArrayList;</span>
import java.util.List;
import java.util.concurrent.Callable;
import java.util.concurrent.CompletionService;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.Conc ...
- 2016-09-21 21:47
- 浏览 578
- 评论(0)
package prefetch;
import java.util.Iterator;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.WritableComparable;
import org.apache.hama.graph.GraphJobMessage;
import org.apache.hama.util.WritableUtils;
publi ...
- 2016-09-16 22:24
- 浏览 248
- 评论(0)
package prefetch;
public class ConcurrentTest {
public int absoluteDifference = 0 ;
public void addDifference(double val) {
absoluteDifference += val ;
System.out.println(Thread.currentThread().getName() + " " + val +" absoluteDifference: "+ absoluteDifference);
}
/* ...
- 2016-09-15 21:18
- 浏览 366
- 评论(0)
1. Java的共享内存通信
总体性能未见提高,且由于避免了sync()中的通信,使得数据传输时间较短,导致如下问题:
16/09/12 18:16:27 INFO graph.GraphJobRunner: Start process msg: 1473675387360
16/09/12 18:16:27 INFO message.MesssagShareManager: messageManager memoryRead finish: 1473675387864
可见当读完数据时,循环已经开始读取并计算。因此反而会影响真正的计算过程,虽然一轮超步中的sy ...
- 2016-09-12 23:13
- 浏览 282
- 评论(0)
转自:http://galoisplusplus.coding.me/blog/2013/06/08/mpi-debug-tips/
debug一个并行程序(parallel program)向来是件很麻烦的事情(Erlang等functional
programming language另当别论), 对于像MPI这种非shared memory的inter-process model来说尤其如此。
与调试并行程序相关的工具
非开源工具
目前我所了解的商业调试器(debugger)有:
TotalView
Allinea DDT
据说para ...
- 2016-09-07 20:00
- 浏览 308
- 评论(0)