- 浏览: 469580 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (272)
- java基础 (59)
- struts (8)
- spring (8)
- 数据库 (8)
- java 网络编程 (29)
- hibernate (3)
- JavaScript (10)
- 日志管理 (2)
- jsp (4)
- servlet (7)
- xml (4)
- ajax (2)
- web service (4)
- 算法与数据结构 (13)
- java 反射机制 (11)
- java 泛型 (3)
- java I/O (8)
- java 线程 (12)
- JavaEE (6)
- java解惑 (33)
- 工具 (5)
- MyEclipse编程实践 (1)
- OSGI (2)
- 设计模式 (9)
- 正则表达式 (0)
- EJB (3)
- Ubuntu linux (6)
- Android (1)
- web前端 (2)
- 找工作 (1)
- SCA (1)
- maven (1)
- 缓存 (1)
- json (1)
- javamail (1)
- 工作笔记 (2)
最新评论
-
霜花似雪:
博主可以分享一下源码吗?
使用maven构建web项目实例 -
王庆波-行:
很好的demo!
memcache使用实例 -
surpassno:
大写的牛逼
java可视化显示内存使用情况 -
zhulin0504:
怎么访问NetEcho.html页面呀???
applet与servlet的网络通信 -
springdata:
java多线程实例demo源代码下载:http://www.z ...
java多线程例子
package pool; import java.net.Socket; import java.util.Hashtable; public class ConnectionPool { private static final int CONNECTION_POOL_SIZE = 10; private static final String API_SERVER_HOST = "127.0.0.01"; private static final int API_SERVER_PORT = 80; private static ConnectionPool self = null;// ConnectionPool的唯一实例 private Hashtable socketPool = null;// 连接池 private boolean[] socketStatusArray = null;// 连接的状态(true-被占用;false-空闲) public static synchronized void init() { self = new ConnectionPool(); self.socketPool = new Hashtable(); self.socketStatusArray = new boolean[CONNECTION_POOL_SIZE]; // 初始化连接池 self.buildConnectionPool(); } public static synchronized void reset() { self = null; init(); } public static Socket getConnection() { if (self == null) init(); int i = 0; for (i = 0; i < CONNECTION_POOL_SIZE; i++) { if (!self.socketStatusArray[i]) { self.socketStatusArray[i] = true; break; } } if (i <= CONNECTION_POOL_SIZE) return (Socket) self.socketPool.get(new Integer(i)); else { System.out.println("从连接池中获取与邮局的连接失败,已经没有空闲连接!"); throw new RuntimeException("No enough pooled connections."); } } public static void releaseConnection(Socket socket) { if (self == null) init(); for (int i = 0; i < CONNECTION_POOL_SIZE; i++) { if (((Socket) self.socketPool.get(new Integer(i))) == socket) { self.socketStatusArray[i] = false; break; } } } public static Socket rebuildConnection(Socket socket) { if (self == null) init(); Socket newSocket = null; for (int i = 0; i < CONNECTION_POOL_SIZE; i++) { try { if (((Socket) self.socketPool.get(new Integer(i))) == socket) { System.out.println("重建连接池中的第" + i + "个连接."); newSocket = new Socket(API_SERVER_HOST, API_SERVER_PORT); self.socketPool.put(new Integer(i), newSocket); self.socketStatusArray[i] = true; break; } } catch (Exception e) { System.out.println("重建连接失败!"); throw new RuntimeException(e); } } return newSocket; } public synchronized static void buildConnectionPool() { if (self == null) init(); System.out.println("准备建立连接池."); Socket socket = null; try { for (int i = 0; i < CONNECTION_POOL_SIZE; i++) { socket = new Socket(API_SERVER_HOST, API_SERVER_PORT); self.socketPool.put(new Integer(i), socket); self.socketStatusArray[i] = false; } } catch (Exception e) { System.out.println("与邮局的连接池建立失败!"); throw new RuntimeException(e); } } public synchronized static void releaseAllConnection() { if (self == null) init(); // 关闭所有连接 Socket socket = null; for (int i = 0; i < CONNECTION_POOL_SIZE; i++) { socket = (Socket) self.socketPool.get(new Integer(i)); try { socket.close(); } catch (Exception e) { } } } }
发表评论
-
计算机网络知识
2011-06-01 16:19 799一个http请求的详细过程 我们来看当我们在浏览器输入htt ... -
java udp socket实例
2010-12-06 12:28 7124客户端: package udp; import jav ... -
线程池实现tcp socket
2010-12-01 17:23 2886前面的程序,当一个客户端请求到来时,服务器端就会临时性的创建一 ... -
tcp socket实例(改进)
2010-12-01 16:16 1598上一篇的程序服务器端只能接受一个客户端请求,本篇改为模拟多客户 ... -
java tcp socket实例
2010-12-01 13:44 1639网络编程的基本模型就是客户端到服务器端模型,一段必须提供一个固 ... -
telnet协议(转)
2010-10-14 17:17 1145我们知道Telnet服务器软 ... -
whois协议(转)
2010-10-14 14:28 1362当我们预备建立一个Web站点,就必须向域名登记机构申请一个In ... -
java 网络协议(一)Tcp多线程服务器端编程
2010-10-14 11:33 54891,通用服务器代码: package multiThread; ... -
java 网络协议(一)UDP
2010-10-14 09:24 1486UDP测试程序,无需建立连接 package udp; ... -
java 网络协议(一)Tcp
2010-10-14 08:52 51421,简化的服务器端程序 package tcp; imp ... -
java 网络协议(一)InetAddress和Socket(含源码)
2010-10-14 08:24 18921,ip地址和主机名互换 package getip; ... -
ftp协议2(转)
2010-10-12 16:26 971FTP协议工作原理 FTP有 ... -
ftp协议(转)
2010-10-12 16:21 1269ftp协议 FTP协议将使用两 ... -
SMTP服务协议(转)
2010-10-11 15:31 1254SMTP服务概述 鉴于本课程的默认读者群是那些对Inter ... -
利用socket发送接收邮件(转)
2010-10-11 15:18 4193这是在网上摘的,执行接收邮件出现:530 Authentica ... -
jdk6.0从入门到精通-----chapter5网络编程 新I/O(含源码下载)
2010-09-21 10:13 1436本例向用户通过参数指定的主机端口发送一段请求报文,然后读取和打 ... -
jdk6.0从入门到精通-----chapter6--http
2010-09-14 16:32 957用httpconnection进行文件下载,建立一般的jav ... -
java自学===Filter类的应用,验证用户
2010-09-14 14:37 946Filter类 package com; import ... -
java自学===Filter类的应用,网站数量统计
2010-09-14 12:31 1944package filterStatistic; imp ... -
jdk6.0从入门到精通-----chapter5网络编程 udp套接字
2010-09-12 13:46 1167用到的主要类DatagramPacket,DatagramSo ...
相关推荐
《JDK 6.0从入门到精通——Chapter 17 动态编程》 在Java编程领域,JDK 6.0版本引入了许多新特性,其中动态编程是提升开发效率和灵活性的重要方面。本章将深入探讨动态编程的概念、用途以及如何在JDK 6.0中利用这些...
在Java编程领域,JDK(Java Development Kit)是开发和运行Java应用程序的...总的来说,"JDK6.0从入门到精通-----chapter5网络编程 新I/O"是一个极好的学习资源,无论你是初学者还是有经验的开发者,都能从中获益良多。
标题中的“jdk6.0从入门到精通-----chapter18与动态语言结合”指的是Java开发工具包(JDK)6.0版本中的一个章节,主要探讨了如何将Java与动态编程语言集成。在Java 6中,引入了一个重要的特性,即Java平台标准版6...
《JDK 6.0线程入门到精通——Chapter 7》 在Java开发中,线程是程序执行的最小单元,它使得一个程序能够同时处理多个任务,从而提高了程序的效率和响应性。在JDK 6.0中,线程的管理和使用有了更加完善的特性,对于...
标题 "(源码下载)jdk6.0从入门到精通-----chapter2--输入输出,克隆对象" 提供了我们要探讨的主题,即Java中的输入输出流(I/O Stream)和对象克隆。在这个章节中,我们将深入理解这两个关键概念。 **输入输出流...
本章“jdk6.0从入门到精通-----chapter8并发多线程(1)”着重讲解了Java 6中关于多线程的基本知识和实践技巧。通过源码下载,读者可以更直观地理解多线程的实现方式。 首先,我们要理解什么是多线程。在单线程环境...
在Java编程语言中,JDK(Java Development Kit)是核心组件,它包含了开发和运行Java应用程序所需的工具和Java运行环境。本章节将深入探讨JDK 6.0中的文件和目录操作,这对于任何Java开发者来说都是必备的知识点。在...
在Java编程领域,JDK6.0是一个重要的版本,它为开发者提供了丰富的特性和改进。本章我们将深入探讨“反射机制”以及如何结合Spring AOP(面向切面编程)进行应用。反射是Java中的一种强大工具,允许程序在运行时检查...
微信开发平台开发工具 JDK jdk 6.0 jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008
- 首先,从官方或可信渠道下载JDK 6.0的安装程序。 - 运行安装程序,按照提示完成安装过程。 - 配置环境变量,如JAVA_HOME指向JDK安装目录,PATH添加bin子目录,确保系统能够找到Java命令。 - 检验安装是否成功,...
java6.0文档chm版,分成三部分,分别为JDK6.0+中文文档-lytim24.part1.rar、JDK6.0+中文文档-lytim24.part2.rar、JDK6.0+中文文档-lytim24.part3.rar
java-jdk1.8-8u361-all-jdk-win-linux 该压缩包中包含jdk1.8-8u361下windows版本和linux版本,其包含快速安装包和对应的jdk压缩包版本,具体内容如下: jdk-8u361-linux-aarch64.rpm jdk-8u361-linux-i586.rpm jdk-8...
jdk1.8 jdk-8u5-windows-i586 32位官方正式版 jdk1.8 jdk-8u5-windows-i586 32位官方正式版
这个是安装开发工具java jdk 有很多用途
安装JDK 6.0后,你需要设置环境变量`JAVA_HOME`指向JDK的安装路径,同时将bin目录添加到系统PATH变量中,以便在任何地方都能运行Java命令。然后,你可以开始编写、编译和运行Java程序,享受JDK 6.0带来的便利和强大...
JDK 6.0的网络编程接口进行了优化,包括对NIO(非阻塞I/O)的支持,这使得开发者能够构建高并发的网络应用,尤其适用于处理大量并发连接的情况。 五、XML处理 JDK 6.0引入了全新的StAX(Streaming API for XML)API...
5. **数据库连接池**:JDBC 4.0规范提供了自动的连接池管理,简化了数据库连接的管理,提高了应用的性能和可维护性。 6. **Java Web Start和Applets**:对Java Web Start和Applet的更新增强了安全性,并提供了更好...
jdk-8u60-windows-i586 jdk-8u60-windows-i586 jdk-8u60-windows-i586 jdk-8u60-windows-i586 jdk-8u60-windows-i586
jdk-8u311-windows-x64.exe jdk-8u311-windows-x64.exe.zip jdk-8u311-windows-x64.exe jdk-8u311-windows-x64.exe.zip jdk-8u311-windows-x64.exe jdk-8u311-windows-x64.exe.zip jdk-8u311-windows-x64.exe jdk-8u...
本资源是针对Java JDK 6.0版本的学习资料,非常适合初学者入门。 JDK 6.0是Oracle公司于2006年发布的一个重要版本,它是Java SE(Java Standard Edition)的一部分,提供了许多新特性和改进。这个压缩包中包含的...