而execute()方法则不同,它的任务直接在调用execute()方法的调用线程(通常是主线程)中运行,如果当前没有可用线程,则会立即创建新的线程来处理该任务,并在完成任务后销毁线程。5、消息传递方式 在submit()和execute()方法中,消息传递方式也存在差异。submit()方法中提交的任务可以通过Future对象获取执行结果,开发...
前面说了还需要介绍多线程中使用execute和submit的区别(这两个方法都是线程池ThreadPoolExecutor的方法)。 1.1 方法来源不同 execute方法是线程池的顶层接口Executor定义的,在ThreadPoolExecutor中实现: voidexecute(Runnable command); submit()是在ExecutorService接口中定义的,并定义了三种重载方式: <T> Future<T>submi...
> submit(Runnable task); 2.使用上的区别 2.1execute没有返回值(Future) 2.2执行结果(future.get) 2.3submit可以捕获runnable里的异常 3.示例 3.1使用Future判断任务是否执行完,5s后任务超时就停止任务。 publicclassThreadPoolSubmitFuture {staticclassMyRunnable implements Runnable {privateString jobName;privateThrea...
线程池的execute方法和submit方法的区别 返回值类型:execute方法没有返回值,而submit方法返回一个表示任务结果的Future对象。 可接受的任务类型:execute方法只接受Runnable任务,而submit方法可以接受Runnable任务和Callable任务。 异常处理:在执行任务时,execute方法将任务的异常抛出到调用者的线程中,而submit方法将异常封装在F...
线程池中submit()和execute()方法的区别:1.submit有返回值,而execute没有。2.submit()的返回值Future调用get方法时,可以捕获处理异常。3.submit方便...
一、线程池提交execute和submit有什么区别? 1. execute 用于提交不需要返回值的任务 threadsPool.execute(newRunnable(){@Overridepublicvoidrun(){// TODO Auto-generated method stub }}); 1. 2. 3. 4. 2. submit()方法用于提交需要返回值的任务。线程池会返回一个future类型的对象,通过这个 future对象可以...
区别 在Java线程池中,submit()和execute()方法是用于提交任务的两种常见方式。虽然它们的目标相同,但它们在返回结果、异常处理和方法重载方面有一些区别。 返回结果:submit()方法可以接受并返回Future对象,用于表示异步任务的结果。你可以通过Future对象获取任务的执行结果,或者等待任务执行完成。而execute()方法没有返回值...
线程池中 submit() 和 execute() 方法有什么区别?两个方法都是线程池中提供的,都可以用来执行线程的调度任务,他们的区别如下:execute()只能执行实现Runnable接口类型的任务;而submit()不仅可以执实现Runnable类型接口的任务,也可以执行实现Callable接口类型的任务execute()没有返回值,而submit()有在添加Callable类型...