可以将不可运行的任务传递给ThreadPoolExecutor

时间:2014-08-11 11:25:37

标签: java threadpoolexecutor

我想更新使用用户定义的线程池的遗留代码段。我想使用java ThreadPoolExecutor,但问题是发送到threadpool的请求不是Runnable。有没有办法可以将ThreadPoolExecutor与现有请求(不是Runnable)一起使用。

由于

1 个答案:

答案 0 :(得分:4)

您可以编写一个实现Runnable的适配器类(Design pattern: Adapter),它将您的类的实例和委托从run方法包装到您的等效对象中。

示例:

class MyClass {
    public void doSomething() {
        // ...
    }
}

class MyClassThreadPoolAdapter implements Runnable {
    private MyClass myClass;

    public MyClassThreadPoolAdapter(MyClass myClass) {
        this.myClass = myClass;
    }

    public void run() {
        this.myClass.doSomething();
    }
}