⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lifecyclewebserver.java

📁 java concurrency in practice 源码. JAVA并发设计
💻 JAVA
字号:
package net.jcip.examples;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;import java.util.concurrent.*;import java.util.logging.*;/** * LifecycleWebServer * <p/> * Web server with shutdown support * * @author Brian Goetz and Tim Peierls */public class LifecycleWebServer {    private final ExecutorService exec = Executors.newCachedThreadPool();    public void start() throws IOException {        ServerSocket socket = new ServerSocket(80);        while (!exec.isShutdown()) {            try {                final Socket conn = socket.accept();                exec.execute(new Runnable() {                    public void run() {                        handleRequest(conn);                    }                });            } catch (RejectedExecutionException e) {                if (!exec.isShutdown())                    log("task submission rejected", e);            }        }    }    public void stop() {        exec.shutdown();    }    private void log(String msg, Exception e) {        Logger.getAnonymousLogger().log(Level.WARNING, msg, e);    }    void handleRequest(Socket connection) {        Request req = readRequest(connection);        if (isShutdownRequest(req))            stop();        else            dispatchRequest(req);    }    interface Request {    }    private Request readRequest(Socket s) {        return null;    }    private void dispatchRequest(Request r) {    }    private boolean isShutdownRequest(Request r) {        return false;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -