多线程实现
大约 2 分钟
多线程实现
Java 使用多线程而不是多进程。
多线程中,最难处理的是IO。
实现
程序使用Java 线程池创建多线程,而不是使用传统的方式。这样有利于后期管理线程。
实质上是多个socket并存,程序需要保持和客户端的通信。Silver Spork让每个子线程处理每个socket。当socket 过期后,子线程将被interrupt。
// create thread pool for timer exec
ExecutorService workerExec = Executors.newCachedThreadPool();
一个线程处理一个socket连接。当新的socket传入时,程序将启动一个新的worker 线程处理 和客户端的交互。
Socket socket = serverSocket.accept();
workerExec.execute(new Worker(socket, ++clientID,logger));
Reference
https://www.runoob.com/java/java-multithreading.html
https://www.liaoxuefeng.com/wiki/1252599548343744/1306581130018849