`

Oracle官方并发教程之线程池

阅读更多

Oracle官方并发教程之线程池

 

在java.util.concurrent包中多数的执行器实现都使用了由工作线程组成的线程池,工作线程独立于所它所执行的Runnable任务和Callable任务,并且常用来执行多个任务。

使用工作线程可以使创建线程的开销最小化。在大规模并发应用中,创建大量的Thread对象会占用占用大量系统内存,分配和回收这些对象会产生很大的开销。

 

一种最常见的线程池是固定大小的线程池。这种线程池始终有一定数量的线程在运行,如果一个线程由于某种原因终止运行了,线程池会自动创建一个新的线程来代替它。需要执行的任务通过一个内部队列提交给线程,当没有更多的工作线程可以用来执行任务时,队列保存额外的任务。

使用固定大小的线程池一个很重要的好处是可以实现优雅退化。例如一个Web服务器,每一个HTTP请求都是由一个单独的线程来处理的,如果为每一个HTTP都创建一个新线程,那么当系统的开销超出其能力时,会突然地对所有请求都停止响应。如果限制Web服务器可以创建的线程数量,那么它就不必立即处理所有收到的请求,而是在有能力处理请求时才处理。

创建一个使用线程池的执行器最简单的方法是调用java.util.concurrent.ExecutorsnewFixedThreadPool方法。Executors类还提供了下列一下方法:

  • newCachedThreadPool方法创建了一个可扩展的线程池。适合用来启动很多短任务的应用程序。
  • newSingleThreadExecutor方法创建了每次执行一个任务的执行器。
  • 还有一些创建ScheduledExecutorService执行器的方法。

如果上面的方法都不满足需要,可以尝试java.util.concurrent.ThreadPoolExecutor或者java.util.concurrent.ScheduledThreadPoolExecutor

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: Oracle官方并发教程之线程池

分享到:
评论

相关推荐

    VC多线程操作ORACLE数据库

    在VC++中与Oracle交互通常需要使用Oracle的客户端库,如Oracle Call Interface (OCI) 或ODBC(Open Database Connectivity)驱动。这些接口提供了API,允许开发者在C++代码中执行SQL语句、事务管理、游标操作等。 ...

    jdbc线程池演示demo

    线程池可以提高应用程序的性能,减少创建和销毁线程的开销,同时管理并发访问数据库的多个请求。本实例中,我们将重点讨论如何使用C3P0这个开源的JDBC连接池工具包来实现这一功能。 C3P0是一个开源的JDBC连接池,它...

    Oracle WebServer完全教程.rar

    定期参加Oracle官方培训、阅读相关文档和技术论坛,可以确保对WebServer的最新特性有深入了解。 通过这个“Oracle WebServer完全教程”,读者将全面掌握Oracle WebServer的使用,无论是初学者还是经验丰富的IT专业...

    MySQL线程池问题1

    Oracle和MariaDB都提供了线程池解决方案,其中Percona移植并优化了MariaDB的线程池功能,本文以Percona MySQL 5.7为例进行说明。 MySQL线程池的架构包含一个定时器线程和多个线程组,每个线程组有其工作线程、高低...

    Oracle中间件优化讲义

    本讲义将深入探讨Oracle中间件的各个方面,旨在帮助IT专业人士更好地理解并实施优化策略,以提升系统的响应速度、并发处理能力和资源利用率。 一、Oracle中间件概述 Oracle中间件是一系列用于构建、部署和管理...

    Oracle ADF AM常用配置参数参考

    - **Concurrency Settings**: 控制并发用户数量和线程池大小等,确保系统的响应速度和稳定性。 - **Session Management**: 包括会话超时时间、会话存储方式等,以保证用户的会话安全及管理效率。 - **Data Access...

    Java线程池:并发编程的瑞士军刀

    Java是一种广泛使用的编程语言,由Sun Microsystems公司(现属于Oracle公司)在1995年首次发布。它是一种面向对象的语言,意味着它将现实世界中的事物抽象为对象,这些对象具有属性(数据)和方法(行为)。Java语言...

    Oracle bolb 文件导出

    - **并发控制**:根据数据库并发访问限制,合理设置线程数量,避免过多的并发导致数据库压力过大。 - **进度跟踪**:为用户提供进度反馈,可以是百分比完成或已处理文件数。 6. **测试与性能调优** 完成代码编写...

    Java操作Oracle数据库-多线程.rar

    本教程主要探讨如何在Java中利用多线程技术高效地与Oracle数据库进行交互,从而实现更强大的并发处理能力。通过"Java操作Oracle数据库-多线程.rar"这个压缩包,我们可以学习到以下几个关键知识点: 1. **JDBC连接**...

    oracle JDE 性能优化

    ### Oracle JDE 性能优化 #### 执行摘要 本文档详细介绍了针对Oracle的JDEdwards EnterpriseOne 8.12、WebSphere 6.0 和 WebSphere 6.1 的性能管理和调优策略。内容覆盖了系统级别的优化、Web 服务器性能提升、...

    java oracle,多线程,综合应用示例

    通过分析和研究这些代码,开发者能够掌握如何在实际项目中应用多线程技术,并理解如何有效利用Oracle数据库进行并发数据操作。 至于"工具"标签,可能是指开发过程中使用的辅助工具,如IDE(如IntelliJ IDEA或...

    weblogic和oracle的性能优化

    1. **服务器配置**:合理设置 WebLogic Server 的启动参数,如 JVM 参数(包括堆大小、垃圾回收策略等)、线程池大小、后台线程数量等,以适应高并发环境。 2. **集群配置**:通过创建集群,可以分散负载,提高可用...

    《基于Oracle应用服务器的Web开发技术》(高清、目录)

    4. **Oracle数据源**:在Oracle应用服务器中,数据源是连接到数据库的池化资源,可以提高应用程序的并发性能和资源利用率。配置和管理数据源是Web开发中的重要环节。 5. **安全性**:Oracle应用服务器提供了强大的...

    EBS性能调优之全面挖掘_V4.2(ebs性能优化、oracle性能优化、linux性能优化)

    文档可能引用了多个权威资源,包括Oracle官方文档、技术论坛、最佳实践指南和其他专家的著作,这些都可以作为进一步研究和学习的依据。 **数据库层优化** 数据库层优化主要包括两个方面:实例性能优化和SQL语句...

    MySql和oracle区别(全)

    MySQL则采用线程池或连接池机制,对于并发性能也有良好支持,但相比Oracle稍弱。 二、安全性与权限管理 1. 安全性:Oracle提供了更高级别的安全特性,如精细的权限控制、加密功能以及审计机制;MySQL的安全性相对...

    Oracle 12.c and 11.2.0.4调优 AIX on POWER8

    此外,调整UDP的缓冲区大小有助于处理大量的并发连接,尤其在Oracle Real Application Clusters (RAC)环境下,这将显著改善集群间通信的性能。 两个文档《Oracle 12.1.x and 11.2.0.4 Db Perf Considerations with ...

    oracle_java.zip_oracle

    "oracle_java.zip_oracle" 压缩包显然包含了Oracle官方或相关的Java培训资料,对于初学者来说是非常宝贵的资源。 Java 语言的特点主要包括: 1. **跨平台性**:Java 提倡“一次编写,到处运行”的理念,通过Java...

    图书:Oracle JRockit权威指南

    9. **多线程和并发**:JRockit在处理多线程并发时的优化技术,如锁优化、线程池管理等。 10. **企业级应用案例**:通过实际的企业级应用案例,展示如何在生产环境中运用JRockit提升系统性能和稳定性。 这本书对于...

    德鲁伊线程池jar包。。。

    6. **性能优化**:德鲁伊线程池在处理并发请求时表现出色,通过优化线程调度和资源分配,提高了系统的并发处理能力。 7. **兼容性好**:Druid支持多种主流的数据库,如MySQL、Oracle、SQL Server等,与Spring框架...

Global site tag (gtag.js) - Google Analytics