我想更新使用用户定义的线程池的遗留代码段。我想使用java ThreadPoolExecutor,但问题是发送到threadpool的请求不是Runnable。有没有办法可以将ThreadPoolExecutor与现有请求(不是Runnable)一起使用。
由于
答案 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();
}
}