小编Rav*_*abu的帖子

避免并行继承层次结构

我有两个并行的继承链:

Vehicle <- Car
        <- Truck <- etc.

VehicleXMLFormatter <- CarXMLFormatter
                    <- TruckXMLFormatter <- etc.
Run Code Online (Sandbox Code Playgroud)

我的经验是,并行继承层次结构随着它们的增长而成为一种维护问题.

即不向toXML(), toSoap(), toYAML()我的主要类添加方法.

如何在不违反关注点分离概念的情况下避免并行继承层次结构?

java oop inheritance anti-patterns

33
推荐指数
2
解决办法
4840
查看次数

Java ExecutorService:awaitTermination所有递归创建的任务

我用a ExecutorService来执行任务.此任务可以递归地创建提交给它的其他任务,ExecutorService这些子任务也可以这样做.

我现在遇到的问题是,在我继续之前,我要等到所有任务完成(即所有任务都完成并且他们没有提交新任务).

我不能ExecutorService.shutdown()在主线程中调用,因为这可以防止新任务被接受ExecutorService.

ExecutorService.awaitTermination()如果shutdown没有被召唤,呼叫似乎什么都不做.

所以我有点卡在这里.ExecutorService要看到所有工人都闲着,这不是很难,是吗?我能想出的唯一不合理的解决方案是直接使用a ThreadPoolExecutorgetPoolSize()偶尔查询它.这样做真的没有更好的方法吗?

java concurrency multithreading executorservice

32
推荐指数
3
解决办法
1万
查看次数

Asynctask vs Thread vs Services vs Loader

我稍微感到困惑之间的差异Asynctask,Thread,Service,Loader在Android系统.

我知道它是如何工作的.但我仍然不明白我应该使用什么以及何时使用.

我使用Android工作了3年,并且通常仍然AsyncTask用于所有后台任务(有时候用于Thread).但是很多人说"Asynctask已经过时了",不建议使用它们.他们还建议使用robospice或Volley.

那么,AsyncTask真的很糟糕,我应该使用框架进行网络任务?我应该将什么用于后台(而不是网络)任务?

multithreading android android-service android-asynctask

32
推荐指数
2
解决办法
2万
查看次数

java.io中使用最多的模式是什么?

最近我在求职面试时被问到这个问题,我无法回答.那么,java.io中最常用的模式是什么?它是如何使用的?常见的Java库中使用的其他模式有哪些?

java io design-patterns

30
推荐指数
3
解决办法
2万
查看次数

java.util.Vector - 替代品

以前我总是认为当长度未知时,Vector可用于非描述对象.据我所知,我认为它也是线程安全的

什么是Vector不应该再使用的改变,替代方案是什么?

java vector arraylist

28
推荐指数
5
解决办法
2万
查看次数

Java 8:虚拟扩展方法与抽象类

我正在研究Java 8接口中的新虚拟扩展方法:

public interface MyInterface {
   default String myMethod() { 
      return "myImplementation"; 
   }
}
Run Code Online (Sandbox Code Playgroud)

我的目的是允许接口随着时间的推移而发展,以及多重继承位,但它们看起来非常像我的抽象类.

如果你正在做新的工作,抽象类优先于扩展方法来提供"接口"的实现,还是这两种方法在概念上是等价的?

java abstract-class interface java-8

28
推荐指数
3
解决办法
1万
查看次数

UseConcMarkSweepGC vs UseParallelGC

我目前遇到很长时间的垃圾收集问题.请参阅以下内容.我目前的设置是我使用-Xms1g和-Xmx3g.我的应用程序使用的是java 1.4.2.我没有设置任何垃圾收集标志.从它的外观来看,3gb是不够的,我真的有很多垃圾收集对象.

题:

我应该改变我的垃圾收集算法吗?我应该用什么?是否更好用-XX:+UseParallelGC or -XX:+UseConcMarkSweepGC

或者我应该使用这种组合

-XX:+UseParNewGC -XX:+UseConcMarkSweepGC
Run Code Online (Sandbox Code Playgroud)

占用内存的主要是报告数据而不是缓存数据.此外,该机器有16GB的内存,我打算将堆增加到8GB.

这两个选项有什么区别,因为我仍然觉得很难理解.该机器有多个处理器.我可以接受长达5秒的点击,但30到70秒真的很难.

谢谢您的帮助.

  Line 151493: [14/Jan/2012:11:47:48] WARNING ( 8710): CORE3283: stderr: [GC 1632936K->1020739K(2050552K), 1.2462436 secs]
    Line 157710: [14/Jan/2012:11:53:38] WARNING ( 8710): CORE3283: stderr: [GC 1670531K->1058755K(2050552K), 1.1555375 secs]
    Line 163840: [14/Jan/2012:12:00:42] WARNING ( 8710): CORE3283: stderr: [GC 1708547K->1097282K(2050552K), 1.1503118 secs]
    Line 169811: [14/Jan/2012:12:08:02] WARNING ( 8710): CORE3283: stderr: [GC 1747074K->1133764K(2050552K), 1.1017273 secs]
    Line 175879: [14/Jan/2012:12:14:18] WARNING ( 8710): CORE3283: stderr: [GC 1783556K->1173103K(2050552K), 1.2060946 secs]
    Line 176606: [14/Jan/2012:12:15:42] WARNING ( 8710): CORE3283: …
Run Code Online (Sandbox Code Playgroud)

java performance garbage-collection g1gc concurrent-mark-sweep

27
推荐指数
1
解决办法
6万
查看次数

Apache Storm与Hadoop相比

Storm如何与Hadoop相比?Hadoop似乎是开源大规模批处理的事实标准,Storm有没有优于hadoop的优势?还是他们完全不同?

streaming hadoop apache-storm

27
推荐指数
3
解决办法
2万
查看次数

在什么情况下,Future.get()会抛出ExecutionException或InterruptedException

我的代码片段:

ExecutorService executor = Executors.newSingleThreadExecutor();
try {
    Task t = new Task(response,inputToPass,pTypes,unit.getInstance(),methodName,unit.getUnitKey());
    Future<SCCallOutResponse> fut = executor.submit(t);
    response = fut.get(unit.getTimeOut(),TimeUnit.MILLISECONDS);
} catch (TimeoutException e) {
    // if the task is still running, a TimeOutException will occur while fut.get()
    cat.error("Unit " + unit.getUnitKey() + " Timed Out");
    response.setVote(SCCallOutConsts.TIMEOUT);
} catch (InterruptedException e) {
    cat.error(e);
} catch (ExecutionException e) {
    cat.error(e);
} finally {
    executor.shutdown();
}
Run Code Online (Sandbox Code Playgroud)

我应该如何处理InterruptedExceptionExecutionException代码?

在什么情况下,抛出这些异常?

java multithreading future executorservice interrupted-exception

25
推荐指数
2
解决办法
4万
查看次数

Hadoop namenode:单点故障

Hadoop架构中的Namenode是单点故障.

拥有大型Hadoop集群的人如何应对这个问题?

是否有一个行业认可的解决方案运行良好,其中一个辅助Namenode接管以防主要的一个失败?

hadoop mapreduce hdfs hadoop-yarn hadoop2

25
推荐指数
2
解决办法
1万
查看次数