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集成"是一个关于如何在特定JRE环境下配置和运行Apache Tomcat服务器的过程,涉及到版本兼容性、配置调整、应用部署、性能优化和故障排查等多个方面。通过有效的...
Tomcat和Netty自定义线程池的原因在于,它们需要更精细化的线程管理以满足服务器的高性能需求,例如,定制的线程池可以更好地控制线程的生命周期、优化任务调度和异常处理。`ThreadPoolExecutor`的`submit()`返回`...
9. **多线程**:学习线程的创建方式(继承Thread类和实现Runnable接口),线程同步机制(synchronized关键字,wait(), notify(), notifyAll()方法,以及Lock接口)以及线程池的使用。 10. **文件和目录操作**:学习...
然而,直接使用这些预定义线程池可能无法满足复杂的服务器端需求,因此,很多情况下我们会选择自定义`ThreadPoolExecutor`以达到最佳性能。 在"Best-Thread-Pool-implement-JDK"项目中,开发者可能对这些方面进行了...
### 基于时间的NIO多线程服务器——深入解析与关键技术点 #### 引言 在服务器端编程领域,随着互联网应用的不断发展,如何高效处理大量的并发连接成为了一个重要议题。Java NIO(非阻塞I/O)作为一种先进的I/O处理...
5. **第05章 Java中的多线程** - 介绍并发编程的基础,包括线程的创建(Thread类和Runnable接口)。 - 讨论线程同步和通信的方法,如synchronized关键字、wait/notify机制和线程池。 6. **第06章 对文件的读写** ...
3. **多线程**:Java 7的`java.util.concurrent`包提供了一套高效的并发工具,包括线程池、同步容器类和并发集合类。`Fork/Join`框架则允许将大任务分解为小任务并行执行,提高程序效率。 4. **网络编程**:`java...
JDK7引入了一些重要的改进,如自动资源管理(try-with-resources)、新的集合类型、多线程模型的优化等,这些都使得Jetty在JDK7下运行更加高效和稳定。 2. 安装与配置:下载Jetty的对应JDK7的版本后,解压到本地...
9. **多线程**: - 创建线程:通过实现Runnable接口或继承Thread类。 - 线程同步:synchronized关键字、wait()、notify()和notifyAll()方法,避免线程间的竞态条件。 - 线程池:ExecutorService和...
- **多线程情况下HashMap死循环的问题**:当多个线程同时进行put操作时可能导致循环链表形成闭环。 - **HashMap出现HashDOS攻击的问题**:恶意构造大量相同的哈希值导致性能下降。 - **ConcurrentHashMap的工作...
7. **多线程**: - 线程的创建:Thread类和Runnable接口。 - 线程同步:synchronized关键字,wait()、notify()和notifyAll()方法,以及Lock接口。 - 线程池:ExecutorService和ThreadPoolExecutor的使用。 8. **...
- Java开发环境的搭建:JDK安装与配置 - Hello World程序编写 - **数据类型和运算符** - Java的基本数据类型(整型、浮点型、字符型等)及其区别 - 变量声明与初始化 - 运算符(算术运算符、比较运算符、逻辑...
6. **多线程** - **线程创建**:通过实现Runnable接口或继承Thread类创建线程。 - **同步机制**:synchronized关键字、wait()、notify()等方法防止线程间的不一致性。 - **线程池**:ExecutorService接口和...
8. **多线程** - 线程的创建:通过Thread类或实现Runnable接口。 - 线程同步:synchronized关键字、wait()、notify()、notifyAll()。 - 线程池:ExecutorService、ThreadPoolExecutor、Future。 9. **网络编程**...
7. **多线程** - 线程概念:程序中的并发执行单元。 - 创建线程:通过继承Thread类或实现Runnable接口。 - 线程同步:synchronized关键字、wait()、notify()和notifyAll()方法,防止数据竞争。 - 线程池:...
9. **多线程**: - 线程的创建方式:继承Thread类、实现Runnable接口。 - 线程的生命周期,线程同步机制(synchronized、wait()、notify()、notifyAll())。 - 线程池的使用与配置。 10. **网络编程**: - ...
6. **多线程编程** - 线程的创建与启动 - 同步机制:synchronized, volatile, Lock接口 - 线程池的使用与优化 7. **I/O与NIO** - 字节流与字符流 - 文件操作与目录管理 - NIO(New IO):通道、缓冲区、选择...
8. **多线程**:Java支持多线程编程,包括线程的创建、同步与通信,以及线程池的使用,有助于提高程序的并发性能。 9. **集合框架**:Java集合框架是处理对象数组的强大工具,包括List、Set、Map接口及其实现类,如...
7. **多线程**:理解线程的创建、同步、互斥,以及线程池的使用,提高程序的并发性能。 8. **网络编程**:通过Socket编程实现客户端与服务器之间的通信,掌握TCP和UDP协议的差异。 9. **反射与注解**:学习如何在...
JDK 1.6.0_02的API文档涵盖了Java的核心类库,包括基础类、集合框架、IO流、网络编程、多线程、反射、注解、XML处理等多个领域。 1. **基础类与接口** - **Object类**:所有Java类的根类,定义了一些基本方法,如`...