右侧
当前位置:网站首页 > 资讯 > 正文

线程池submit和execute区别,线程池的submit方法

作者:admin 发布时间:2024-01-25 18:45 分类:资讯 浏览:71 评论:0


导读:ExecutorService中submit和execute的区别接收的参数不同submit有返回值,而execute没有用到返回值的例子,比如说应用中有很多个做valida...

ExecutorService中submit和execute的区别

接收的参数不同 submit有返回值,而execute没有 用到返回值的例子,比如说应用中有很多个做validation的task,用户希望所有的task执行完,然后每个task告诉主程序执行结果,是成功还是失败,如果是失败,原因是什么。

void execute(Runnable command);} execute()方法的入参为一个Runnable,返回值为void,这时候我们已经知道了execute()方法的来源以及其定义。

下面说说execute和submit的区别。

啥时候会使用线程池

1、用线程池控制线程数量,其他线程 排队等候。一个任务执行完毕,再从队列的中取最前面的任务开始执行。若队列中没有等待进程,线程池的这一资源处于等待。

2、啥时候会使用线程池?线程池:是一种多线程处理形式,处理线程时将任务添加到队列里,等创建好线程再执行队列里任务。线程池的线程都是后台线程。每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中。

3、如果队列满了,并且已创建的线程数小于最大线程数,则线程池会再创建新的线程执行任务。值得注意的是,如果使用了无界的任务队列这个参数就没什么效果。keepAliveTime(线程活动保持时间):线程池的工作线程空闲后,保持存活的时间。

4、根据查询Tomcat项目相关信息得知,该项目得出线程池可以在业务中使用。Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。

5、线程池,thread pool,是一种线程使用模式,线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。功能:应用程序可以有多个线程,这些线程在休眠状态中需要耗费大量时间来等待事件发生。

线程池中execute和submit的区别

1、接收的参数不同 submit有返回值,而execute没有 用到返回值的例子,比如说应用中有很多个做validation的task,用户希望所有的task执行完,然后每个task告诉主程序执行结果,是成功还是失败,如果是失败,原因是什么。

2、在使用java.util.concurrent下关于线程池一些类的时候,相信很多人和我一样,总是分不清submit()和execute()的区别,今天从源码方面分析总结一下。

3、所以他的用法和Executor框架的使用时一样的,当然Fork Join本身就是Executor框架的扩展。ForkJoinPool有3个关键的方法,来启动线程,execute(...),invoke(...),submit(...)。

4、将任务添加到线程去执行 当将一个任务添加到线程池中的时候,线程池会为每个任务创建一个线程,该线程会在之后的某个时刻自动执行。

okhttp(二)之线程池分析

1、参数一:corePoolSize 核心线程数,表示线程池需要一直维护的数量,决定了任务是开辟新的线程还是放到workQueue任务队列中去。

2、executorService 线程池,核心线程是0,最大数是maxValue,线程池内部维护等待队列,OKHTTP中是一个无容量队列,相当于来到请求就必须处理,没有线程时就会创建,所以就会是maxValue。

3、利用建造者模式构建okHttpClient实例对象,构建过程中可以动态配置参数,请求时间,响应时间,缓存信息等。 创建Request对象,设置请求方式,链接地址,参数等信息。

4、第一步:创建OkHttpClient,创建OkHttpClient有两种方式:OkHttpClient提供了丰富的配置方法,例如添加拦截器、指定连接池、设置请求超时等等。

标签:


取消回复欢迎 发表评论: