小编u07*_*103的帖子

多次提交相同(Runnable)命令到Java中的executor服务

我想使用Java中的执行程序服务以并行方式安排相同的命令.我在线程池执行器上编写了一个包装器,它将并行计数作为参数调度命令,并在for循环中调度命令(即多次执行相同的实例).

这种方法是否正确?有没有建议的方法这样做?我用spring来创建这些bean.

java

5
推荐指数
1
解决办法
4689
查看次数

将JaCoCo与SONAR集成,以实现单元和集成测试覆盖

有没有人试过配置JaCoCo来将单元和集成测试的覆盖范围转储到2个不同的文件中,让SONAR使用它们,使用ANT构建?

java ant jacoco sonarqube

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

获取给定纪元时间(以毫秒为单位)的午夜纪元时间(以毫秒为单位)

对于给定纪元时间(以毫秒为单位)获取 UTC 午夜时间的建议方法是什么?我尝试了以下似乎有效的方法,想知道是否有更好/更干净的方法来做同样的事情。

 public long toUtcMidnight(final Long date) {
    return LocalDateTime.ofInstant(Instant.ofEpochMilli(date), ZoneId.of("UTC"))
            .toLocalDate()
            .atStartOfDay()
            .toInstant(ZoneOffset.UTC)
            .toEpochMilli();
    }
Run Code Online (Sandbox Code Playgroud)

我们可以为此使用 Joda 时间,但我只想为此使用 java 8 日期库。

java java-8

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

编写加载缓存番石榴的测试用例

我试图在我的数据库上测试缓存的异步加载.我正在使用Google guava加载缓存,后者又使用缓存加载器异步刷新给定密钥(如https://code.google.com/p/guava-libraries/wiki/CachesExplained中所述)

我正在尝试以下步骤进行测试

  • 刷新持续时间:1秒
  • 调用缓存,密钥不存在.调用模拟DB
  • 了Thread.sleep(2000L)
  • 再次拨打同一个密钥.由于密钥存在且刷新周期结束,因此应返回失效值并启动异步刷新
  • 了Thread.sleep(2000L)

  • 再拨一次同一个密钥.

由于我在嘲笑dao,我希望它至少被称为两次.但是,当我试图验证模拟时,它无法说模拟只被调用一次.如何确保dao被调用两次?我正在嘲笑线程工厂,同时创建正在调用创建新线程的Executor,正如预期的那样.为什么对dao的第二次调用从未发生过?我在这里错过了什么吗?我正在使用新的FixedThread池执行器并将其装饰为侦听装饰器.

测试这种刷新缓存的正确方法是什么?任何帮助深表感谢.

java spring multithreading unit-testing guava

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

使用函数java快速失败(或者更确切地说,返回)

为选错的头衔道歉,想不出一个更好的头衔.请随时建议一个新的标题.

我想使用Java 8 lambda表达式编写以下代码

List<Function<MyClass, Optional<String>>> functions //assume initialized
for (final Function<MyClass, Optional<String>> function : functions) {
    final Optional<String> result = function.apply(objectOfMyClass);
    if (result.isPresent()) { //as soon as one of the function returns a non-null string, return
        return result; //
    }
}
Run Code Online (Sandbox Code Playgroud)

有关如何去做的任何建议?

java lambda java-8

1
推荐指数
1
解决办法
79
查看次数

标签 统计

java ×5

java-8 ×2

ant ×1

guava ×1

jacoco ×1

lambda ×1

multithreading ×1

sonarqube ×1

spring ×1

unit-testing ×1