- 浏览: 224544 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (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 学习笔记 二 对象的访问
工作线程
public abstract class WorkThread implements Runnable, Serializable{ /** 线程池的参数是否改变 */ private boolean isPoolSizeAliveTimeModf = false; /** JDK 线程池 spring封装 扩展实现的线程池 */ private MyThreadPoolTaskExecutor taskExecutor; /** 核心线程数 */ private static int corePoolSize; /** 最大线程数 */ private static int maximumPoolSize; /** 线程池维护线程所允许的空闲时间 */ private static int keepAliveTime; public WorkThread(TaskExecutor taskExecutor) { this.taskExecutor = (MyThreadPoolTaskExecutor) taskExecutor; } public final void run() { try { // 如果线程池参数有变化,则重置 if (isPoolSizeAliveTimeModf()) { taskExecutor.setCorePoolSize(corePoolSize); taskExecutor.setMaxPoolSize(maximumPoolSize); taskExecutor.setKeepAliveSeconds(keepAliveTime); } //抽象函数,供子类实现 doTask(); } catch (Exception e) { e.printStackTrace(); } } //任务工作 public abstract void doTask() throws Exception; //获取缓冲队列QUEUE,用于维护监控 public BlockingQueue getQueue() { return taskExecutor.getThreadPoolExecutor().getQueue(); } //获取队列size,用于维护监控 public int getQueueSize() { if (this.getQueue() instanceof LinkedBlockingQueue) { return this.getQueue().size(); } else { return this.getQueue().size(); } } //如果线程池中的参数有变化,自动调用update方法 public void update(Observable observable, Object obj) { if (obj instanceof Map) { HashMap<String, Integer> poolMap = (HashMap<String, Integer>) obj; //打印 线程池 历史大小 和 要更改的大小 corePoolSize = poolMap.get("corePoolSize"); maximumPoolSize = poolMap.get("maximumPoolSize"); keepAliveTime = poolMap.get("keepAliveTime"); //一定要把值设到线程池中 taskExecutor.setCorePoolSize(corePoolSize); taskExecutor.setMaxPoolSize(maximumPoolSize); taskExecutor.setKeepAliveSeconds(keepAliveTime); } } public MyThreadPoolTaskExecutor getTaskExecutor() { return taskExecutor; } public void setMaximumPoolSize(int maximumPoolSize) { this.maximumPoolSize = maximumPoolSize; } public boolean isPoolSizeAliveTimeModf() { return isPoolSizeAliveTimeModf; } public void setKeepAliveTime(int keepAliveTime) { this.keepAliveTime = keepAliveTime; } }
发表评论
-
[Java性能剖析]远程调试配置
2014-07-10 10:48 808一、服务器操作如下: 找到文件:apache-tomcat-5 ... -
[jdk工具命令]Java SE 文档
2014-07-10 10:43 778oracle java se documentation j ... -
[jdk命令工具]jconsole远程项目监控
2014-07-10 10:37 789入口: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 6946工具类: import java.io.Buff ... -
java 高性能网络编程 NIO
2012-09-28 16:31 1518服务器端: // 1. 分配一个 Serve ... -
java 高性能网络编程 mina
2012-09-28 10:52 1691服务器端: // 创建一个非阻塞的server端so ... -
代理 下载网页,挖掘数据
2012-09-25 13:51 899URL 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 938MongoDB 实战笔记 count 查询记录 ... -
MongoDB 实战笔记 一
2012-09-20 11:30 1181MongoDB 实战笔记 来建立一个 test 的集 ... -
Struts 学习笔记 二
2012-09-17 16:56 875login.jsp 登陆页面 <html:form ac ...
相关推荐
深入探讨了如何利用并发编程与多线程处理来构建高性能的C++应用。文章首先介绍了并发与并行的基本概念、线程与进程的区别,以及多线程的优势与挑战。接着,详细讲解了C++中支持并发编程的核心工具,包括`std::thread...
高优先级的线程更可能获得CPU资源,但过度使用可能导致系统响应变慢。 9. **线程同步对象**:`CWinApp::Lock`和`CWinApp::Unlock`方法用于控制对MFC应用单例访问,防止多线程环境下资源竞争。 在提供的压缩包文件...
在编程领域,尤其是在Android或Java应用开发中,工作线程(Worker Thread)和用户界面线程(UI Thread)是两个非常关键的概念。...在实际开发中,理解并熟练掌握这两者的关系对于构建高质量的应用至关重要。
在IT行业中,Linux多线程高并发服务器设计是构建高性能网络服务的核心技术之一。这种设计模式主要用于处理大量的并发连接请求,充分利用系统资源,提供高效稳定的服务。以下将详细阐述相关知识点: 1. **多线程**:...
总结起来,MFC中的用户界面线程与工作者线程是构建高效、响应式应用程序的关键。UI线程专注于用户交互,保持界面流畅;工作者线程则负责处理耗时任务,避免阻塞UI。通过合理地分配任务和使用同步机制,可以充分利用...
工作队列(Work Queue)是一种在多线程编程中广泛使用的模式,用于协调并发任务的执行,优化系统资源的利用并提高程序的响应速度。在C#中,工作队列通常用于将耗时的任务放入队列,然后由一组后台线程来处理这些任务...
比如,Java的ConcurrentHashMap是一个线程安全的哈希表实现,它通过分段锁机制来实现线程安全,并提供较高的并发性能。并发集合类通常提供了比它们的同步对应物更好的性能,且更容易使用。 在编写线程安全代码时,...
总之,线程异步工作和线程间的异步通知是多线程编程中的重要概念,通过合理使用C++11及更高版本提供的并发工具,可以构建高效且响应迅速的多线程应用程序。正确理解和运用这些工具,能够帮助开发者优化系统性能,...
这个"高并发多线程处理demo-java.rar"压缩包提供了一个实际的Java实现,展示了如何构建一个并发队列来接收数据,并通过多线程进行处理。以下是对这个实例中的知识点进行的详细解释: 1. **Java多线程**:Java通过`...
【基于Linux系统的构建高性能服务器的研究】这篇论文主要探讨了如何在Linux环境下建立高效能的服务器,涉及的关键技术包括事件处理模式、并发模式以及资源管理策略。以下是对这些知识点的详细阐述: 1. **事件处理...
通过对这些知识点的学习和实践,你将能够掌握如何在实际项目中运用多线程技术来构建高并发、高可靠、高性能的系统。这份压缩包资源应该提供了丰富的实例、代码示例、讲解文档,帮助你深入理解和应用这些概念。记得...
在构建高性能服务的过程中,数据结构和算法的选择至关重要。本文我们将探讨`ConcurrentSkipListMap`和如何利用链表来优化Java Memcached实现。`ConcurrentSkipListMap`是Java并发编程中的一个强大工具,而链表则常...
在Linux环境中,利用这些技术可以构建高性能的网络监控工具,例如网络安全分析、流量统计或协议分析。通过合理地设计缓冲区策略和多线程模型,可以有效地平衡数据包的处理速度与保持数据顺序的需求,同时充分利用...
`golang-set`库提供了一种实现,包括线程安全和非线程安全的高性能集,非常适合在Go的并发环境中使用。 首先,我们要理解什么是线程安全和非线程安全。线程安全指的是在多线程环境下,一个函数或方法在同一时刻可以...
在编程领域,多线程是一种常见的技术,它允许程序同时执行多个任务,从而提高系统效率和响应速度。...通过深入理解C#的多线程机制,并利用各种测试工具和方法,开发者可以构建出强大且可靠的多线程应用程序。
线程在现代计算机编程中扮演着至关重要的角色,尤其是在并发处理和高性能应用中。Java以其强大的线程支持,成为并发编程的首选语言之一。本节将围绕书中的核心主题——线程死锁和线程同步展开讨论。 **线程死锁**是...
OEasyPool-1.0可能是第三方库或个人实现的一个线程池实例,用于演示如何在C++中构建这样的机制。 线程池的基本组件包括: 1. 工作线程:这些是预先创建的线程,它们等待来自线程池的任务。 2. 任务队列:所有待...
在C#编程中,多线程消息处理是一个关键的领域,尤其在开发高效、响应迅速的应用程序时。本文将深入探讨“C#多线程消息处理例子”中的核心概念,...理解并掌握这些概念对于编写高性能、响应迅速的C#应用程序至关重要。