我有一個實現了可調用接口的類。我想使用ScheduledExecutorService接口的scheduleAtFixedRate方法爲該類安排任務。然而,scheduleAtFixedRate需要一個可運行的對象作爲它可以調度的命令。我們如何將可調用對象轉換爲可運行對象
因此,我需要一些方法可以將可調用對象轉換爲可運行對象。我嘗試了簡單的鑄造,但那不起作用。
示例代碼:
package org.study.threading.executorDemo;
import java.util.concurrent.Callable;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
class ScheduledExecutionTest implements Callable<String> {
@Override
public String call() throws Exception {
// TODO Auto-generated method stub
System.out.println("inside the call method");
return null;
}
}
public class ScheduledExecution {
public static void main(String[] args) {
ScheduledExecutorService sec = Executors.newScheduledThreadPool(10);
sec.scheduleAtFixedRate(new ScheduledExecutionTest(), 5, 2, TimeUnit.SECONDS);
}
}
'實現Callable,Runnable'不行嗎?我從來沒有嘗試過使用兩種。 – Zircon
Callable的目的是返回一個值。爲什麼你會返回一個你想放棄的價值固定的價格? –
把@ PeterLawrey的評論換個角度來看,你想用'Callable'返回的值做什麼? – dcsohl