Java语言中的submit和execute都是线程相关的方法。这两个方法在不同的场景下有着不同的应用。下面我们来分别介绍它们的作用。
//submit方法示例 ExecutorService executorService = Executors.newFixedThreadPool(10); //创建一个拥有10个线程的线程池 Futurefuture = executorService.submit(new Callable () { @Override public String call() throws Exception { //执行一些耗时操作 return "操作执行完毕"; } }); executorService.shutdown(); //关闭线程池 //execute方法示例 Executor executor = Executors.newSingleThreadExecutor(); //创建一个线程池,只有一个线程 executor.execute(new Runnable() { @Override public void run() { //执行一些任务 } });
从上面的代码示例可以看出,submit方法是用来执行有返回值的任务的,它需要传入一个Callable类型的参数,通过它的返回值来获取任务的执行结果。而execute方法则用于执行没有返回值的任务,它需要传入一个Runnable类型的参数。
此外,submit方法还有一个重载方法,可以接收一个Runnable类型的参数,但是无法获取执行结果。
在使用submit和execute方法时,需要注意线程池的管理,及时关闭线程池,避免因为线程池没有关闭而导致的资源浪费和系统崩溃等问题。