- 浏览: 224501 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (163)
- c++ (30)
- JavaScript (30)
- java (61)
- jQuery (3)
- ACE (2)
- oracle (9)
- jni (0)
- android (2)
- shell (1)
- myeclipse (1)
- Hibernate (1)
- linux (2)
- sqlserver (2)
- windows (2)
- sql (2)
- php (2)
- css (1)
- 学习 (1)
- ExtJs (1)
- RSS (1)
- 报文 (1)
- 跟我学Spring3 (6)
- dos (1)
- server (1)
- nosql (4)
- mongodb (6)
- photoshop (1)
- WebService (2)
- 股票 (1)
- OpenGL (3)
- Spring3MVC (6)
- 生活 (1)
- struts2 (1)
- 云盘 (1)
- blog (1)
- nosql nodejs mongoose (1)
最新评论
-
sblig:
配置分片: mongo -port 27017config ...
搭建Mongodb集群:分片Sharding+副本集Replica Set -
sblig:
配置路由:mongs: 40000 40100 40200sc ...
搭建Mongodb集群:分片Sharding+副本集Replica Set -
fuanyu:
哥们,干得漂亮。。
struts2 高危漏洞修复 -
sblig:
配置列子如下
<?xml version="1 ...
跟我学Spring3 学习笔记一 -
sblig:
307622798 写道博主你好,最近在看你的js系列文章,发 ...
JavaScript 学习笔记 二 对象的访问
扩展 Spring 线程池
/** 扩展SPRING 2.0的threadPooltaskExecutor 提供返回theadPoolexuecutor的引用,用于实时调整CorePoolSize、MaximumPoolSize、KeepAliveTime三个参数。 */ public class MyThreadPoolTaskExecutor implements SchedulingTaskExecutor,Executor, InitializingBean, DisposableBean { //核心线程池大小 private int corePoolSize; //最大线程池大小 private int maxPoolSize; //线程保持活动时间 private int keepAliveSeconds; //缓冲队列大小 private int queueCapacity; //线程池名称 private String threadPoolName; //thread 工厂 private ThreadFactory threadFactory; //未执行任务的接口 private RejectedExecutionHandler rejectedExecutionHandler; //jdk 线程池执行器 private ThreadPoolExecutor executorService; //用于线程同步对象 private final Object poolSizeMonitor = new Object(); //MAP 用于管理所有线程池 private static ConcurrentHashMap threadPoolMap = new ConcurrentHashMap <String,ThreadPoolExecutor>(); //默认构造函数 public MyThreadPoolTaskExecutor() { corePoolSize = 1; maxPoolSize = 2147483647; keepAliveSeconds = 60; queueCapacity = 2147483647; threadFactory = Executors.defaultThreadFactory(); rejectedExecutionHandler = new java.util.concurrent.ThreadPoolExecutor.AbortPolicy(); threadPoolName =""; } //创建缓冲队列 protected BlockingQueue createQueue(int queueCapacity) { if (this.queueCapacity > 0) return new LinkedBlockingQueue(this.queueCapacity); else return new SynchronousQueue(); } //线程池执行方法 public void execute(Runnable task) { Assert.notNull(executorService,"ThreadPoolTaskExecutor not initialized"); executorService.execute(task); } //SPRING 线程池方法扩展,返回线程池对象用于实时调整CorePoolSize、 //MaximumPoolSize、KeepAliveTime三个参数。 public ThreadPoolExecutor getThreadPoolExecutor() throws IllegalStateException { Assert.state(this.executorService != null, "ThreadPoolTaskExecutor not initialized"); return this.executorService; } public void setCorePoolSize(int corePoolSize) { synchronized (this.poolSizeMonitor) { this.corePoolSize = corePoolSize; if (this.executorService != null) { this.executorService.setCorePoolSize(corePoolSize); } } } public int getCorePoolSize() { synchronized (this.poolSizeMonitor) { return this.executorService.getCorePoolSize(); } } public void setMaxPoolSize(int maxPoolSize) { synchronized (this.poolSizeMonitor) { this.maxPoolSize = maxPoolSize; if (this.executorService != null) { this.executorService.setMaximumPoolSize(maxPoolSize); } } } public int getMaxPoolSize() { synchronized (this.poolSizeMonitor) { return this.executorService.getMaximumPoolSize(); } } public void setKeepAliveSeconds(int keepAliveSeconds) { synchronized (this.poolSizeMonitor) { this.keepAliveSeconds = keepAliveSeconds; if (this.executorService != null) { this.executorService.setKeepAliveTime(keepAliveSeconds,TimeUnit.SECONDS); } } } public int getKeepAliveSeconds() { synchronized (this.poolSizeMonitor) { return this.keepAliveSeconds; } } public void setQueueCapacity(int queueCapacity) { this.queueCapacity = queueCapacity; } public void setThreadFactory(ThreadFactory threadFactory) { this.threadFactory = threadFactory == null ? Executors .defaultThreadFactory() : threadFactory; } public void setRejectedExecutionHandler( RejectedExecutionHandler rejectedExecutionHandler) { this.rejectedExecutionHandler = ((RejectedExecutionHandler)(rejectedExecutionHandler == null ? ((RejectedExecutionHandler) (new java.util.concurrent.ThreadPoolExecutor.AbortPolicy())) : rejectedExecutionHandler)); } }
发表评论
-
[Java性能剖析]远程调试配置
2014-07-10 10:48 808一、服务器操作如下: 找到文件:apache-tomcat-5 ... -
[jdk工具命令]Java SE 文档
2014-07-10 10:43 777oracle java se documentation j ... -
[jdk命令工具]jconsole远程项目监控
2014-07-10 10:37 788入口:catalina.sh JAVA_OPTS=&quo ... -
[jvm参数]JVM简单配置
2014-07-10 10:35 1224-Xms256m -Xmx512M -XX:MaxPermSi ... -
struts2 高危漏洞修复
2013-07-23 10:30 11881. /** * 过滤器 */ ... -
转:调查服务器响应时间的利器 tcprstat
2012-11-16 13:50 1485http://rdc.taobao.com/blog/cs/? ... -
跟我学Spring3 学习笔记七 初始化与销毁
2012-10-18 16:45 2094最后 遗留一个问题, ... -
跟我学Spring3 学习笔记六 注入
2012-10-18 14:31 2232跟我学Spring3 学习笔 ... -
动态生成class
2012-10-16 11:17 1368ASM 进行动态生成class import org.obj ... -
FtpUtil ftp工具类 过滤文件名
2012-10-10 16:25 6944工具类: import java.io.Buff ... -
java 高性能网络编程 NIO
2012-09-28 16:31 1516服务器端: // 1. 分配一个 Serve ... -
java 高性能网络编程 mina
2012-09-28 10:52 1691服务器端: // 创建一个非阻塞的server端so ... -
代理 下载网页,挖掘数据
2012-09-25 13:51 898URL url = new URL("http:// ... -
java nio 编程学习 一
2012-09-21 16:08 1178Java.nio中的主要类ServerSocketChanne ... -
MongoDB 实战笔记 四
2012-09-20 14:12 1145import java.net.UnknownHostExce ... -
Json 添加元素拼接JSON字符串(转)
2012-09-20 13:55 7055package com.util; import jav ... -
MongoDB 实战笔记 三
2012-09-20 13:37 2479导出mongoexport -d m ... -
MongoDB 实战笔记 二
2012-09-20 11:45 937MongoDB 实战笔记 count 查询记录 ... -
MongoDB 实战笔记 一
2012-09-20 11:30 1181MongoDB 实战笔记 来建立一个 test 的集 ... -
Struts 学习笔记 二
2012-09-17 16:56 875login.jsp 登陆页面 <html:form ac ...
相关推荐
在IT行业中,分布式架构是一种常见的解决方案,特别是在大数据处理和高并发场景下,它能有效提升系统的性能和可扩展性。本项目围绕“Java简单分布式架构,多个数据源,线程池多线程访问”这一主题展开,旨在通过利用...
### 基于MINA构建高性能的NIO应用 #### 概述 MINA作为一款优秀的客户端/服务器架构下的Java服务器框架,凭借其强大的功能和灵活性,在开发高性能网络应用程序方面表现突出。本文将深入探讨MINA的核心概念、优势...
总的来说,Spring的线程池支持和任务调度为开发者提供了强大的工具,帮助他们构建可扩展、高性能且易于管理的企业级应用。通过`TaskExecutor`和`ThreadPoolTaskScheduler`,开发者可以在不牺牲灵活性的前提下,确保...
ActiveMQ 是一个开源的消息中间件,它遵循开放消息模型(JMS)标准,提供高性能、高可用性和可扩展性的消息传递服务。在这个项目中,我们看到的是一个自己实现的 ActiveMQ 客户端,它特别关注多线程的实现,这在处理...
在本项目中,我们探索了如何将Spring MVC框架与多线程、线程池和Apache Kafka集成,构建一个高效的数据处理系统。以下是关于这些技术及其整合的详细知识点: 1. **Spring MVC**: - Spring MVC是Spring框架的一个...
在IT行业中,Java是一种广泛应用的编程语言,尤其在构建高性能、高并发的服务器架构方面具有显著优势。本资源集合包含了关于“JAVA高性能高并发服务器架构”的PDF文档和视频,旨在帮助开发者深入理解如何利用Java...
总的来说,"Socket一对一,一对多线程"是网络编程中常见的模式,通过Java的Socket和多线程技术,我们可以构建出高效、可扩展的网络服务。结合Spring框架,可以进一步提升开发效率和应用性能。而源码分析和实践操作将...
在Spring Boot应用中,我们可以利用其提供的功能来配置和管理定时任务、线程池以及多线程池执行。这些配置对于构建高效、可扩展的应用至关重要,尤其是在处理并发和定时任务调度时。 首先,我们来看看如何配置基础...
在本课程中,"Spring Boot《Java课程》多线程教学演示系统(011733)",我们将深入探讨Java编程语言的核心特性之一——多线程,并结合Spring Boot框架构建一个实际的教学演示系统。这个系统将帮助我们理解如何在现代...
本项目正是以此为目标,结合Spring Boot和Druid,构建了一个能够同时操作两种不同类型数据库的示例。 首先,Spring Boot的多数据源配置是通过Spring的@Configuration和@Bean注解来实现的。每个数据源都会被定义为一...
在Java开发领域,构建高性能、高并发的Web应用是一项核心任务。这涉及到多个技术层面的综合运用,包括但不限于系统架构设计、线程管理、数据访问优化、缓存策略、负载均衡以及性能监控等。以下是一些关键的知识点,...
7. **MySQL数据库**:MySQL是最常用的开源关系型数据库之一,学习其SQL语法、索引优化、事务处理、存储引擎、性能监控和调优等知识,对于构建高性能、高可用的数据存储系统至关重要。 以上各知识点的学习和掌握,将...
在Java世界中,开发高性能、高并发的Web应用程序是一项关键任务,这关乎到系统的稳定性、扩展性和用户体验。本文将深入探讨如何借助Java技术栈来实现这一目标。 首先,选择合适的框架至关重要。Spring Boot是一个...
Redis是高性能的键值数据库,常用于数据缓存、分布式锁和消息中间件等场景。在Redis中,你可以存储字符串、列表、集合、哈希表和有序集合等多种数据结构,并利用其原子操作来保证数据的一致性。例如,你可以用`SET`...
Mina框架是一款高性能、轻量级的网络通信框架,主要应用于开发基于TCP和UDP的网络应用。它提供了一种简单而强大的编程模型,使得开发者能够快速构建出稳定且高效的网络服务。在Spring框架的支持下,Mina的使用变得...
总结,这个Java实现的项目为大规模的网络爬虫工作提供了高性能、可扩展的解决方案,通过代理IP池解决了IP限制问题,采用分布式架构保证了系统的稳定性和高吞吐量,是企业级网络爬虫项目的优秀实践。
在构建一个基于Spring的简单高效通用异步任务处理系统时,我们的主要目标是实现轻量级、简单、高效、通用、高扩展性和高可靠性的解决方案。在这个系统中,我们将利用Spring框架的功能,如Job调度和线程池封装,以及...
这些技术都是在构建高性能、可扩展的分布式系统中常用的工具。 首先,Kestrel是一个开源的、基于内存的分布式消息队列系统,它主要由Twitter开发并维护。Kestrel以其高吞吐量和低延迟而著名,被广泛用于构建实时...
总结起来,构建Java高并发高性能分布式框架和微服务架构,需要深入了解和运用包括但不限于Spring框架、线程池、NIO、缓存策略、Dubbo、Zookeeper、Spring Cloud、数据一致性模型以及CI/CD等技术。通过合理的设计和...
以上是构建高性能、高并发Java Web应用的核心知识点。通过合理运用这些技术和工具,可以有效地提升系统的吞吐量和响应速度,同时保证系统的稳定性和可扩展性。在实际开发中,应根据项目需求灵活选择并整合这些技术,...