execute()
Java中的方法在这里,我们将看到与Java中的方法有何submit()
不同execute()
?
此方法在java.util.concurrent包中可用。
Submit()方法用于将任务提交到ThreadPool。
此方法是重载方法。
Submit()方法接受Runnable或Callable任务(即,该方法仅接受一个参数,即Runnable或Callable)。
Submit()是ExecutorService接口的静态方法,因此也可以使用类名访问此方法。
此方法的返回类型是Future对象,因此它返回包含未决结果计算的Future类型对象。
ExecutorService接口是Executor的子接口。
下面给出了commit()方法的语法:
Future f_obj = ExecutorService_obj . submit(new Runnable(){}); Future f_obj = ExecutorService_obj . submit(new Callable(){});
如果我们要计算大量计算,例如计算pie的值等并返回计算结果,则应该使用Submit()。
示例:Submit()
接受可运行任务
//Java程序演示submit()方法的行为 //ExecutorService接口 import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; public class SubmitATaskBySubmitMethod { public static void main(String[] args) throws Exception { //允许ThreadPool中的一个线程 ExecutorService exe_ser = Executors.newFixedThreadPool(1); //通过使用submit()我们接受Runnable任务 Future f = exe_ser.submit(new Runnable() { //覆盖run()方法,并将在其中定义一个作业 public void run() { System.out.println("Submitting a task by using submit() method"); } }); //如果任务完美完成,此方法将返回null- //(即没有任何错误) System.out.println(f.get()); } }
输出结果
Submitting a task by using submit() method null
示例:Submit()
接受可调用任务
//Java程序演示submit()方法的行为 //ExecutorService接口 import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Callable; import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; public class SubmitATaskBySubmitMethod { public static void main(String[] args) throws Exception { //允许ThreadPool中的一个线程 ExecutorService exe_ser = Executors.newFixedThreadPool(1); //通过使用submit()我们接受Callable任务 Future f = exe_ser.submit(new Callable() { //覆盖call()方法,并将在其中定义一个作业 public Object call() { System.out.println("Submitting a Callable task by using submit() method"); return "Callable Task"; } }); //如果任务完美完成,此方法将返回null- //(即没有任何错误) System.out.println(f.get()); } }
输出结果
Submitting a Callable task by using submit() method Callable Task