`
dyccsxg
  • 浏览: 205293 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类

Java自定义多线程服务器[续--JDK线程池]

    博客分类:
  • Java
阅读更多
package multi;

import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class MultiServer {
	private int port = 8000;
	private int backlog = 42;
	private ServerSocket server_socket;
	private ExecutorService threadPool;
	private final int POOL_SIZE = 7;
	
	public MultiServer()throws IOException{
		server_socket = new ServerSocket();
		server_socket.setReuseAddress(true);
		server_socket.bind(new InetSocketAddress(port),backlog);
		int system_cpu_total = Runtime.getRuntime().availableProcessors();
		threadPool = Executors.newFixedThreadPool(POOL_SIZE * system_cpu_total);
		System.out.println("--- server started! ---");
	}
	public void service(){
		while(true){
			try{
				Socket socket = server_socket.accept();
				threadPool.execute(new WorkHandler(socket));
			} catch(Exception e){
				e.printStackTrace();
			}
		}
	}
	public static void main(String[] args)throws Exception {
	    MultiServer server = new MultiServer();
	    server.service();
    }
}

 

分享到:
评论

相关推荐

    apache-tomcat-8.0.44与jdk1.8.0_77的jre集成

    综上所述,"apache-tomcat-8.0.44与jdk1.8.0_77的jre集成"是一个关于如何在特定JRE环境下配置和运行Apache Tomcat服务器的过程,涉及到版本兼容性、配置调整、应用部署、性能优化和故障排查等多个方面。通过有效的...

    Java线程池学习资料-全

    Tomcat和Netty自定义线程池的原因在于,它们需要更精细化的线程管理以满足服务器的高性能需求,例如,定制的线程池可以更好地控制线程的生命周期、优化任务调度和异常处理。`ThreadPoolExecutor`的`submit()`返回`...

    java基础课件(1---10)

    9. **多线程**:学习线程的创建方式(继承Thread类和实现Runnable接口),线程同步机制(synchronized关键字,wait(), notify(), notifyAll()方法,以及Lock接口)以及线程池的使用。 10. **文件和目录操作**:学习...

    Best-Thread-Pool-implement-JDK:服务器端

    然而,直接使用这些预定义线程池可能无法满足复杂的服务器端需求,因此,很多情况下我们会选择自定义`ThreadPoolExecutor`以达到最佳性能。 在"Best-Thread-Pool-implement-JDK"项目中,开发者可能对这些方面进行了...

    基于时间的NIO多线程服务器

    ### 基于时间的NIO多线程服务器——深入解析与关键技术点 #### 引言 在服务器端编程领域,随着互联网应用的不断发展,如何高效处理大量的并发连接成为了一个重要议题。Java NIO(非阻塞I/O)作为一种先进的I/O处理...

    《Java语言程序设计》-郭磊-电子课件

    5. **第05章 Java中的多线程** - 介绍并发编程的基础,包括线程的创建(Thread类和Runnable接口)。 - 讨论线程同步和通信的方法,如synchronized关键字、wait/notify机制和线程池。 6. **第06章 对文件的读写** ...

    Java_API之jdk-7u51-apidocs

    3. **多线程**:Java 7的`java.util.concurrent`包提供了一套高效的并发工具,包括线程池、同步容器类和并发集合类。`Fork/Join`框架则允许将大任务分解为小任务并行执行,提高程序效率。 4. **网络编程**:`java...

    jetty-jdk7使用版本

    JDK7引入了一些重要的改进,如自动资源管理(try-with-resources)、新的集合类型、多线程模型的优化等,这些都使得Jetty在JDK7下运行更加高效和稳定。 2. 安装与配置:下载Jetty的对应JDK7的版本后,解压到本地...

    清华大学JAVA教程(HTML版).rar

    9. **多线程**: - 创建线程:通过实现Runnable接口或继承Thread类。 - 线程同步:synchronized关键字、wait()、notify()和notifyAll()方法,避免线程间的竞态条件。 - 线程池:ExecutorService和...

    Java后端技术面试汇总-2019

    - **多线程情况下HashMap死循环的问题**:当多个线程同时进行put操作时可能导致循环链表形成闭环。 - **HashMap出现HashDOS攻击的问题**:恶意构造大量相同的哈希值导致性能下降。 - **ConcurrentHashMap的工作...

    良葛格Java JDK 5.0学习笔记

    7. **多线程**: - 线程的创建:Thread类和Runnable接口。 - 线程同步:synchronized关键字,wait()、notify()和notifyAll()方法,以及Lock接口。 - 线程池:ExecutorService和ThreadPoolExecutor的使用。 8. **...

    java1000题基础百战程序员

    - Java开发环境的搭建:JDK安装与配置 - Hello World程序编写 - **数据类型和运算符** - Java的基本数据类型(整型、浮点型、字符型等)及其区别 - 变量声明与初始化 - 运算符(算术运算符、比较运算符、逻辑...

    “Java电子课件”

    6. **多线程** - **线程创建**:通过实现Runnable接口或继承Thread类创建线程。 - **同步机制**:synchronized关键字、wait()、notify()等方法防止线程间的不一致性。 - **线程池**:ExecutorService接口和...

    清华大学JAVA教程(清华JAVA教程的PPT)

    8. **多线程** - 线程的创建:通过Thread类或实现Runnable接口。 - 线程同步:synchronized关键字、wait()、notify()、notifyAll()。 - 线程池:ExecutorService、ThreadPoolExecutor、Future。 9. **网络编程**...

    烟台大学java课件

    7. **多线程** - 线程概念:程序中的并发执行单元。 - 创建线程:通过继承Thread类或实现Runnable接口。 - 线程同步:synchronized关键字、wait()、notify()和notifyAll()方法,防止数据竞争。 - 线程池:...

    大学课程java课件,非常详细

    9. **多线程**: - 线程的创建方式:继承Thread类、实现Runnable接口。 - 线程的生命周期,线程同步机制(synchronized、wait()、notify()、notifyAll())。 - 线程池的使用与配置。 10. **网络编程**: - ...

    Java应用开发指南配套PPT

    6. **多线程编程** - 线程的创建与启动 - 同步机制:synchronized, volatile, Lock接口 - 线程池的使用与优化 7. **I/O与NIO** - 字节流与字符流 - 文件操作与目录管理 - NIO(New IO):通道、缓冲区、选择...

    Java语言程序设计教程-雷学生-电子教案

    8. **多线程**:Java支持多线程编程,包括线程的创建、同步与通信,以及线程池的使用,有助于提高程序的并发性能。 9. **集合框架**:Java集合框架是处理对象数组的强大工具,包括List、Set、Map接口及其实现类,如...

    java jdk 实例宝典(光盘源码)

    7. **多线程**:理解线程的创建、同步、互斥,以及线程池的使用,提高程序的并发性能。 8. **网络编程**:通过Socket编程实现客户端与服务器之间的通信,掌握TCP和UDP协议的差异。 9. **反射与注解**:学习如何在...

    JDK1.6.02 API文档 手机版 适就于所有手机03

    JDK 1.6.0_02的API文档涵盖了Java的核心类库,包括基础类、集合框架、IO流、网络编程、多线程、反射、注解、XML处理等多个领域。 1. **基础类与接口** - **Object类**:所有Java类的根类,定义了一些基本方法,如`...

Global site tag (gtag.js) - Google Analytics