- 浏览: 34073 次
- 性别:
- 来自: 湖南
文章分类
最新评论
Axis2的连接主要采用了HttpClient进行与服务器的服务的交互,其中的代码分析看出Httpclient的多线程支持代码的编写,记录下来,便于以后用到使用
protected HttpClient getHttpClient(MessageContext msgContext) { HttpClient httpClient; final ConfigurationContext configContext = msgContext.getConfigurationContext(); synchronized (lock) { httpClient = (HttpClient) configContext.getProperty(HTTPConstants.CACHED_HTTP_CLIENT); if (httpClient == null) { log.trace("Making new ConnectionManager"); HttpConnectionManager connManager = new MultiThreadedHttpConnectionManager(); // In case we need to set any params, do it here, but for now use defaults. // HttpConnectionManagerParams params = new HttpConnectionManagerParams(); // params.setMaxConnectionsPerHost(HostConfiguration.ANY_HOST_CONFIGURATION, 200); // etc... // connManager.setParams(params); httpClient = new HttpClient(connManager); HttpClientParams clientParams = new HttpClientParams(); // Set the default timeout in case we have a connection pool starvation to 30sec clientParams.setConnectionManagerTimeout(30000); httpClient.setParams(clientParams); configContext.setProperty(HTTPConstants.CACHED_HTTP_CLIENT, httpClient); } // Get the timeout values set in the runtime initializeTimeouts(msgContext, httpClient); } return httpClient; }
MultiThreadedHttpConnectionManager就是用来解决线程安全性的,HttpClient自动维护他们的关系
其中MultThreadedHttpConnectionManage有如下r参数配置:
connectionStaleCheckingEnabled:这个标志对所有已经创建的connections都适用。除特殊情况外,此值应该设置成true。
maxConnectionsPerHost:最大连接数,默认是2。
maxTotalConnections:最大活动连接数,默认是20
所以可以根据具体需要调整参数的大小
特别注意
在使用完成了连接以后一定需要手动关闭连接,由于他自己无法进行自动连接释放,所以需要手动释放连接。
发表评论
-
HttpClient容易忽视的细节——连接关闭
2012-03-02 09:15 621HttpClient client = new HttpCli ... -
HttpClient超时区别
2012-03-02 09:07 1075HttpClient 4 设置超时 httpclient 超时 ... -
HttpClient Theading
2012-03-01 10:49 677有技术兴趣的 请加28830308群. 这篇文章概括了怎样在 ... -
HttpClient使用
2012-03-01 10:43 725有技术兴趣的 请加28830308群. HttpClien ... -
线程请求执行,一个多线程程执行HTTP请求的例子。
2012-03-01 10:40 1763package cn.lake.util; import ... -
httpclient 4 下载 文件
2012-03-01 10:38 957import java.io.File; import ja ... -
使用了httpclient实现的上传商品的demo
2012-03-01 10:36 1157package com.taobao.top.sample.u ... -
socket简介
2012-02-07 10:58 686第一步 充分理解Socket ... -
转载socket
2012-02-07 10:57 575对TCP/IP、UDP、Socket编程这些词你不会很陌生吧? ... -
Java的synchronized关键字:同步机制总结
2012-02-07 10:54 577不久前用到了同步,现在回过头来对JAVA中的同步做个总结,以对 ... -
JAVA RMI
2012-02-07 10:53 577Java RMI 指的是远程方法调用 (Remote Meth ... -
JXL生成复杂的EXCEL
2011-12-26 13:52 1385public String ExcelTaskRepo ... -
如何快速的为现有数据库建立数据字典?
2011-12-20 13:55 998大部分项目在验收时都需要向客户提供一份详细的数据字典,而编写数 ... -
在java中获取客户端真实的IP地址
2011-12-20 13:55 555public static String getRemoteA ... -
用JavaMail的API发送邮件
2011-12-20 13:55 5331、MimeMessage的包装类 public c ... -
在项目中整合FreeMarker框架
2011-12-16 15:40 583FreeMarker是一个用Java编写的模板引擎,既可以 ... -
Commons FTP范例
2011-12-16 15:33 505public class FtpUtil { privat ... -
Java实现的图片生成器
2011-12-16 15:32 522一、本图片生成器具有以下功能特性: 1、可以设置图 ... -
jacob学习总结
2011-12-16 15:27 447JACOB 就是 JAVA-COM Bridge的缩写,提供自 ... -
长短信发送范例
2011-12-16 15:25 692一、关键代码: private synchronized v ...
相关推荐
本篇文章将深入探讨如何使用HTTPClient进行多线程分段下载的实践。 首先,我们要理解多线程下载的基本原理。多线程下载是通过将大文件分割成多个小段,每个线程负责下载一个或多个段,这样可以充分利用多核处理器的...
通过使用HttpClient的连接池和多线程,我们可以有效地并发执行HTTP GET请求,同时控制并发数量,避免过多的网络连接导致服务器压力过大。这种方式提高了请求效率,减少了资源消耗,并且遵循了最佳实践。
这就是多线程编程的重要性所在。本篇将深入探讨如何在WinForm应用中运用多线程技术来提升性能和用户体验。 一、WinForm与多线程 1. 背景线程:为了防止UI阻塞,我们可以创建后台线程来处理计算密集型任务。在...
在这种情况下,除了使用多线程提高并发性,还可以考虑使用异步编程模型(如Future或Callback)来提高效率,减少线程等待时间。同时,要合理控制请求频率,避免对服务器造成过大的压力,甚至触发反爬策略。 总的来说...
在C#中,我们可以使用`System.Net.WebClient`类或者自定义`HttpClient`实例来实现多线程下载。 异步编程是现代C#的一个重要特性,它允许我们在等待IO操作完成时,不阻塞主线程,提高程序的响应性。在下载工具中,...
在VB.NET编程中,多线程技术是一种提升应用程序性能的重要手段。特别是在处理大文件下载时,多线程分块下载可以显著提高效率,减少用户等待时间,并有效利用网络带宽。这个“VB.NET 多线程分块下载类”正是为了解决...
C#作为一种强大的编程语言,提供了丰富的多线程支持,使得开发者能够轻松地创建并管理多个执行线程。本文将深入探讨如何在C#中实现多线程下载文件,涉及的知识点包括线程池、异步编程、进度更新以及错误处理。 首先...
总的来说,C# Winform多线程下载的实现涉及到多线程编程、Winform UI交互以及HTTP文件下载,这些是开发高效桌面应用程序必备的基础技能。通过这样的实践,开发者能够提升处理并发任务的能力,优化用户体验,尤其是在...
在IT行业中,多线程是一种常见的编程技术,特别是在C#这样的多任务编程环境中。这个名为“多线程访问网页测试”的...通过学习和实践此类项目,开发者可以提升在高并发场景下的编程能力,更好地理解和应用多线程编程。
综上所述,C#多线程下载文件涉及到了多线程编程、文件流操作、网络通信、同步控制、错误处理、异步编程等多个方面,是学习C#高级特性和实际应用的好例子。通过对提供的源码进行研究,开发者不仅可以掌握多线程下载的...
在这个命名空间中,`Thread`类是多线程编程的核心,它提供了创建、控制和管理线程的方法和属性。例如,`Thread.Start()`用于启动一个新线程,`Thread.Sleep()`让当前线程暂停执行一定时间,`Thread.Join()`则等待一...
在.NET框架中,多线程编程是实现并发执行任务的重要手段。本篇将详细讲解`System.Threading.ThreadPool`类、`System.Threading.Timer`类以及异步编程的使用。 **1. System.Threading.ThreadPool 类** 线程池是一种...
2. **多线程**:在多线程编程中,多个线程可以在同一时间执行,从而提高程序的并发性和效率。在C#中,可以使用`System.Threading`命名空间中的`Thread`类创建和管理线程。另外,`Task`类和`Parallel`类提供了更高...
在IT行业中,多线程技术是一项关键的编程概念,...而实现这一功能需要对多线程编程、网络协议和文件操作有深入的理解。在实践中,还需要关注性能优化、错误处理和用户体验等方面,以确保下载和上传过程的稳定性和效率。
【标题】"基于HTTP多线程下载工具源码"揭示了这个项目的核心是实现一个能够利用HTTP协议并采用多...通过研究这个项目,开发者不仅可以提升网络编程技能,还能掌握多线程编程的实战技巧,对提升个人技术能力非常有益。
而`Task`和`Parallel`类是.NET Framework 4.0引入的并行编程模型,它们提供了更高级的抽象,简化了多线程编程。在这个Http下载项目中,多线程可能被用来同时从服务器获取数据,以提高下载速度。 其次,Http下载涉及...
总之,C# Winform实现Http多线程下载涉及到了Http协议、多线程编程以及文件操作等多个知识点。理解和掌握这些技术对于开发高效、可靠的下载工具至关重要。在实践中,还应注意优化并发数量、考虑网络状况等因素,以...
在C#编程中,多线程技术是一种关键的性能优化手段,特别是在处理耗时操作如大文件下载时。本示例“C#多线程下载demo”旨在展示如何利用多线程来加速文件的下载过程。多线程允许程序同时执行多个任务,从而提高效率并...
在C#编程中,多线程文件下载是一种提高下载效率的...以上就是关于“C#多线程文件下载程序”的核心知识点和实现细节,这个程序的实现涉及到C#语言基础、.NET框架、多线程编程、网络编程以及文件操作等多个方面的知识。
在快速迁移指南中,提到了一些关键步骤和概念,例如使用多线程连接管理器`MultiThreadedHttpConnectionManager`,它是HttpClient 3.x中用来处理连接管理的一个重要组件。而在4.x版本中,这个管理器被`...