package org.httpkit.server; import org.httpkit.HeaderMap; import java.io.IOException; import java.nio.ByteBuffer; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import static org.httpkit.HttpUtils.HttpEncode; class MultiThreadHandler implements IHandler { private ExecutorService exec; public MultiThreadHandler() { int core = 6; // Runtime.getRuntime().availableProcessors(); exec = Executors.newFixedThreadPool(core); } public void close(int timeoutMs) { } @Override public void handle(AsyncChannel channel, Frame frame) { } public void handle(HttpRequest request, final RespCallback callback) { exec.submit(new Runnable() { public void run() { HeaderMap header = new HeaderMap(); header.put("Connection", "Keep-Alive"); ByteBuffer[] bytes = HttpEncode(200, header, SingleThreadHandler.body); callback.run(bytes); } }); } public void handle(AsyncChannel channel, Frame.TextFrame frame) { } public void clientClose(AsyncChannel channel, int status) { } } public class MultiThreadHttpServerTest { public static void main(String[] args) throws IOException { HttpServer server = new HttpServer("0.0.0.0", 9091, new MultiThreadHandler(), 20480, 2048, 1024 * 1024 * 4, ProxyProtocolOption.DISABLED); server.start(); System.out.println("Server started on :9091"); } }