小编Par*_*bay的帖子

Java的Fork/Join vs ExecutorService - 何时使用哪个?

我刚读完这篇文章:Java-5 ThreadPoolExecutor相对于Java-7 ForkJoinPool有什么优势?觉得答案不够直接.

您能用简单的语言和示例来解释,Java 7的Fork-Join框架与旧解决方案之间的权衡取舍是什么?

我还阅读了Google关于Java提示的#1热门提示:何时javaworld.com 使用ForkJoinPool vs ExecutorService但文章没有回答标题问题,它主要讨论api差异......

java concurrency multithreading executorservice fork-join

52
推荐指数
6
解决办法
3万
查看次数

如何实现Spring AMQP Listener Container中的并发性?

我的容器XML配置:

<rabbit:listener-container
        connection-factory="myConnectionFactory"
        acknowledge="none"
        concurrency="10"
        requeue-rejected="false">
    <rabbit:listener ref="myListener" queues="myQueue"/>
</rabbit:listener-container>
Run Code Online (Sandbox Code Playgroud)

而且myListener只是一堂课

@Component("myListener")
public class MyListener implements MessageListener {
    @Autowired
    SomeDependency dependency;
    ....
}
Run Code Online (Sandbox Code Playgroud)

concurrency="10"在我的XML中指定了.这是什么意思完全相同


我找到了一些文档.他们没有那么有用的陈述:

指定要创建的并发使用者数.默认值为1.


我感兴趣的是是否MyListener必须是线程安全的,即

  • 有很多实例创建或许多线程使用单个实例?
  • 我可以访问没有同步的实例字段吗?
  • SomeDependency dependency 一次或为每个线程/实例实例化?
  • 确实dependency需要线程安全吗?

java spring amqp rabbitmq spring-amqp

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

Java 8默认方法与抽象类中的非抽象方法

Java 8接口默认方法与抽象类中的非抽象方法 - 两者之间是否存在任何差异(除了iface的类别,可见性等)

不是Java中的默认方法,这意味着它违背了Java多年来所宣传的本质?!

java abstract-class java-8 default-method

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

检查数组是否包含D中的元素

对于关联数组,我们可以编写

if( elem in array) { .. }
Run Code Online (Sandbox Code Playgroud)

我们为一个简单的数组写了什么?我想写验证,例如

enforce(input in [10,20,40]);
Run Code Online (Sandbox Code Playgroud)

arrays d

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

Wikipedia表中的默认排序列

有一个标准的维基表

{| class="sortable wikitable"
! Title
! Authors
! ID Number
|-
| '''Applying UML and Patterns'''
| Craig Larman
| ID432
...
Run Code Online (Sandbox Code Playgroud)

如何使表按第3列(ID)升序对表进行排序?

html css mediawiki

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

Groovy铸造集合没有任何用途

我有一些使用Generics编写的Java代码.这是一个简单的版本:

// In Java
public interface Testable {
    void test();
}

public class TestableImpl implements Testable {
    @Override
    public void test(){
        System.out.println("hello");
    }
}

public class Test {
    public <T extends Testable> void runTest(Collection<T> ts){
        System.out.println("Collection<T>");
        for(T t: ts)
            t.test();
    }

    public void runTest(Object o){
        System.out.println("Object");
        System.out.println(o);
    }
}


// in Groovy - this is how I have to use the code
Test test = new Test()
test.runTest([new TestableImpl(), new TestableImpl()]) 
test.runTest([1,2,3]) //exception here
Run Code Online (Sandbox Code Playgroud)

我很惊讶第二个方法调用被调度到错误的方法(在我的Javish理解中是错误的).而是调用Object重载,调用Collectiongets.

我使用的是Groovy …

java generics groovy casting spock

9
推荐指数
2
解决办法
3495
查看次数

StringTemplate中的嵌套循环

我有兴趣使用StringTemplate模板引擎编写类似于嵌套循环的东西.在C#中有一个HashTable,其中每个Key包含Document对象列表,每个Document都有一个标题和源.我想在电子邮件的开头列出每个来源的文档标题摘要.

<h1>Summary</h1>
<h2>Source A</h2>
<ul>
  <li>title 1</li>
  <li>title 2</li> 
</ul>
<h2>Source B</h2>
<ul>
  <li>title 3</li>
  <li>title 4</li> 
</ul>
Run Code Online (Sandbox Code Playgroud)

使用StringTemplate实现此目的的最佳方法是什么?

c# stringtemplate

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

如何重复一次N语句(简单循环)

我需要执行N次动作.D的最佳方式是什么?

for(uint i=0; i<N; i++)
   action();

foreach(uint i; 0.. N)
   action();
Run Code Online (Sandbox Code Playgroud)

也许更好的东西?理想的情况是我想要的东西像Groovy的/ Ruby的times

N.times {
   action();
}
Run Code Online (Sandbox Code Playgroud)

可能吗?

loops d

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

将单元测试保存在D中的单独文件中

我想测试用D编写的代码.我正在使用DUB来构建项目(但是到目前为止配置是相当基本的:只是名称和dunit依赖项).

我在很多项目中都看到,单元测试放在实际代码旁边(例如http://wiki.dlang.org/Unittest#Placement).

虽然对于小模块和简单测试来说这是IMO,但如果我真的想测试我的代码呢?

在Java(和其他JVM语言)中,惯例恰恰相反 - 将测试保存在单独的文件中(通常反映测试中的单元包装).

是否有可能在D中为单元测试提供单独的文件?

我很想拥有一个经典的设置:

dub.json
/source/mylib/app.d
/tests/mylib/app_tests.d
Run Code Online (Sandbox Code Playgroud)

与DUB集成的文件app_tests(与其他文件一样tests) - 仅在--unittests等等期间编译/运行

testing unit-testing d

7
推荐指数
2
解决办法
1063
查看次数

将切片转换为本机(字节顺序)整数

我有一个字节(我知道这是一个保存为小端的整数),我想将它们转换为整数.

当我有一个静态大小的数组时没问题,但现在我有一个slice(ubyte[]).

是否仍然可以将其转换为整数,例如以这种方式?

ubyte[] bytes = ...;
uint native = littleEndianSliceToNative!uint(bytes);
Run Code Online (Sandbox Code Playgroud)

d type-conversion endianness

7
推荐指数
2
解决办法
137
查看次数