改造-TCP-Java-客户机/服务器应用程序-并发-限制线程上限
2015-03-23 13:11
323 查看
原代码
改造后的Server:
重点是通过Executors.newFixedThreadPool来限制线程上限.此时上限为2
改造后的Server:
重点是通过Executors.newFixedThreadPool来限制线程上限.此时上限为2
import java.io.*; import java.net.*; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class Server implements Runnable{ Socket connectionSocket; static int count = 0; public Server(Socket connectionSocket){ System.out.println(++count); this.connectionSocket = connectionSocket; } public static void main(String argv[]) throws IOException { ServerSocket welcomeSocket = new ServerSocket(6789); ExecutorService exec = Executors.newFixedThreadPool(2); while(true){ Socket connectionSocket = welcomeSocket.accept(); exec.execute(new Server(connectionSocket)); } } @Override public void run() { String clientSentence = null; String capitalizedSentence; BufferedReader inFromClient = null; try { inFromClient = new BufferedReader( new InputStreamReader( this.connectionSocket.getInputStream())); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } DataOutputStream outToClient = null; try { outToClient = new DataOutputStream( this.connectionSocket.getOutputStream()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { clientSentence = inFromClient.readLine(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } capitalizedSentence = clientSentence.toUpperCase() + '\n'; try { outToClient.writeBytes(capitalizedSentence); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } --count; } }
相关文章推荐
- 改造-TCP-Java-客户机/服务器应用程序-并发
- TCP-Java-客户机/服务器应用程序例子
- TCP并发服务器(五)——每个客户一个线程
- 【原创】TCP Socket 简单练习 --- 线程池实现并发服务器 分类: Linux --- 应用程序设计 2014-12-25 13:59 50人阅读 评论(0) 收藏
- 服务器编程入门(11)TCP并发回射服务器实现 - 单线程select实现
- (UNP点滴记录) TCP端口号与并发服务器,缓冲区大小限制,TCP/UDP输出机制
- 【安全牛学习笔记】 安装Java、安装显卡驱动、安装网卡补丁、并发线程限制、电源优化.txt
- 01_Weblogic课程之概念篇:代理服务器,web服务器,应用程序服务器,JNDI概念,JTA概念,Java消息服务,Java验证和授权(JAAS),Java管理扩展,Web客户机,客户机应用程序
- TCP并发服务器(七)——可动态增减的线程池,主线程accept——基于UNP代码修改
- 01_Weblogic课程之概念篇:代理服务器,web服务器,应用程序服务器,JNDI概念,JTA概念,Java消息服务,Java验证和授权(JAAS),Java管理扩展,Web客户机,客户机应用程序
- java基于AbstractQueuedSynchronizer实现资源共享锁,限制并发线程数目
- 以线程实现TCP并发服务器
- Java 并发编程实践基础 读书笔记: 第二章 构建线程安全应用程序
- java并发编程2:构建线程安全应用程序
- Java 并发TCP 服务器[CODE]
- JAVA模拟客户机与服务器实现简易的TCP通讯
- TCP并发服务器(六)——创建线程池,每个线程accept,accept使用互斥锁保护——基于UNP代码
- UDP-Java-客户机/服务器应用程序
- Linux C——TCP并发服务器客户端(线程实现)
- (十四)Core Java 网络编程(TCP客户端并发登录,自定义服务器,自定义浏览器,域名解析)-02 (111)