Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ThreadFactory如何为JUnit中的测试创建ThreadCreationException_Java_Jboss - Fatal编程技术网

Java ThreadFactory如何为JUnit中的测试创建ThreadCreationException

Java ThreadFactory如何为JUnit中的测试创建ThreadCreationException,java,jboss,Java,Jboss,尝试使用ThreadFactory创建单元测试(边界集成测试),只是想知道如何“强制”Java/JVM不能创建更多线程 换句话说,如何调用ThreadFactory.newThread并获取null import org.jboss.threads.JBossThreadFactory.JBossThreadFactory; import java.util.concurrent.ThreadFactory; private final ThreadFactory threadFactor

尝试使用ThreadFactory创建单元测试(边界集成测试),只是想知道如何“强制”Java/JVM不能创建更多线程

换句话说,如何调用ThreadFactory.newThread并获取null

import org.jboss.threads.JBossThreadFactory.JBossThreadFactory;  
import java.util.concurrent.ThreadFactory;

private final ThreadFactory threadFactory;

JBossThreadFactory threadFactory = new JBossThreadFactory(null, null, null, "test thread %p %t", null, null);

final Thread thread = threadFactory.newThread(new Worker(task));
if (thread == null) {
    throw new ThreadCreationException();
}

如果您正在使用依赖项注入,则可以创建一个模拟ThreadFactory:

private class NullThreadFactory implements ThreadFactory {
    public Thread newThread(Runnable r) {
        return null;
    }
}

对于特定的单元测试,使用NullThreadFactory而不是JBossThreadFactory。

+1:或者在创建线程计数后失败的测试。