java - Executors.newSingleThreadExecutor

标签 java multithreading

我正在尝试制作一个执行器和线程的简单示例。

当我调用 newSingleThreadExecutor(new CustomThreadFactory) 时,一切顺利,但是当我使用 null 参数调用 newSingleThreadExecutor(null) 时,它给我“AWT-EventQueue-0” java.lang.NullPointerException。

为什么?

private Executor creador = Executors.newSingleThreadExecutor(null); //at this point fails, and with no parameters everything goes well
private QRExplorer explorer; // this class implements Runnable
//...
public MainView()
{
   //...
   explorer = new QRExplorer();
}
private void pCamaraMouseClicked(java.awt.event.MouseEvent evt)
{                                     
      creador.execute(explorer); 
}

最佳答案

这里

Executors.newSingleThreadExecutor(null);

您正在尝试调用接受 ThreadFactory 参数的 newSingleThreadExecutor 重载。您将值 null 作为单个参数传递。

javadoc该方法指出

Throws:

  • NullPointerException - if threadFactory is null

由于您传递的是 null,因此调用将抛出 NullPointerException

关于java - Executors.newSingleThreadExecutor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30656640/

相关文章:

c - 如何在你的API中检测线程安全?

Java 多线程 - 线程安全计数器

java - Apache POI - 从单个工作表中获取图片

java - Java 中是否可以仅在一个输出中显示 for 循环的结果?

java - MacOS 多线程问题?

c - 线程调用其他程序

Java UTF-16 字符串始终使用 4 个字节而不是 2 个字节

java - 整数自动拆箱和自动装箱会带来性能问题吗?

java - 有人可以解释这种类型的语法以及它在做什么吗?

c - pthreads:使用多线程计算连续素数