线程池拒绝策略 开发中常用什么策略_线程池有哪 4 种拒绝策略?
时间: 2023-09-10 18:10:30 浏览: 48
在开发中,常用的线程池拒绝策略包括:
1. AbortPolicy(默认):直接抛出RejectedExecutionException异常,阻止系统正常运行。
2. CallerRunsPolicy:只要线程池未关闭,该策略直接在调用者线程中,运行当前被丢弃的任务。显然这样做不会真的丢弃任务,但是,任务提交线程的性能极有可能急剧下降。
3. DiscardOldestPolicy:丢弃最老的一个请求任务,也就是即将被执行的一个任务,并尝试再次提交当前任务。
4. DiscardPolicy:直接丢弃任务,不予任何处理也不抛出异常。如果允许任务丢失,这是一种最好的方案。
线程池拒绝策略的选择需要根据具体的业务需求来进行选择,不能一概而论。
相关问题
Java中常用线程池
Java中常用的线程池有以下几种:
1. FixedThreadPool:该线程池大小固定,不会改变,适用于负载比较重的服务器。
```java
ExecutorService executor = Executors.newFixedThreadPool(10);
```
2. CachedThreadPool:该线程池大小不固定,会根据需求自动调整,适用于执行很多短期异步任务的程序。
```java
ExecutorService executor = Executors.newCachedThreadPool();
```
3. SingleThreadExecutor:该线程池只有一个线程,适用于需要保证顺序执行各个任务的场景。
```java
ExecutorService executor = Executors.newSingleThreadExecutor();
```
4. ScheduledThreadPool:该线程池可以定时或延时执行任务。
```java
ScheduledExecutorService executor = Executors.newScheduledThreadPool(10);
```
响应头是什么?开发中常用那些概念
在开发中,响应头(Response Headers)是HTTP响应的一部分,用于向客户端(浏览器、应用程序等)提供关于服务器端响应的元数据信息。以下是一些常用的响应头概念:
1. Content-Type:指示响应正文的媒体类型,例如"text/html"表示HTML内容,"application/json"表示JSON内容。
2. Content-Length:指示响应正文的长度(以字节为单位),客户端可以使用该信息确定接收完整内容所需的大小。
3. Cache-Control:指示响应的缓存行为,例如"no-cache"表示禁用缓存,"max-age=3600"表示缓存有效期为3600秒。
4. Location:用于重定向响应,在HTTP状态码为3xx时使用。指示客户端应该重定向到的URL。
5. Set-Cookie:用于设置响应中的cookie,服务器可以通过该头部将cookie信息发送给客户端。
6. Access-Control-Allow-Origin:用于跨域资源共享(CORS)设置,指示是否允许跨域请求访问资源。
7. ETag:用于标识资源的唯一性,可用于缓存验证和条件请求。
8. Last-Modified:指示资源的最后修改时间,可用于缓存验证和条件请求。
这些仅是一些常见的响应头概念,实际上还有许多其他的响应头可用于不同的需求和场景。在开发过程中,您可以根据具体的需求选择适合的响应头来实现所需的功能和行为。