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

📄 logwriter.java

📁 java concurrency in practice 源码. JAVA并发设计
💻 JAVA
字号:
package net.jcip.examples;import java.io.PrintWriter;import java.io.Writer;import java.util.concurrent.*;/** * LogWriter * <p/> * Producer-consumer logging service with no shutdown support * * @author Brian Goetz and Tim Peierls */public class LogWriter {    private final BlockingQueue<String> queue;    private final LoggerThread logger;    private static final int CAPACITY = 1000;    public LogWriter(Writer writer) {        this.queue = new LinkedBlockingQueue<String>(CAPACITY);        this.logger = new LoggerThread(writer);    }    public void start() {        logger.start();    }    public void log(String msg) throws InterruptedException {        queue.put(msg);    }    private class LoggerThread extends Thread {        private final PrintWriter writer;        public LoggerThread(Writer writer) {            this.writer = new PrintWriter(writer, true); // autoflush        }        public void run() {            try {                while (true)                    writer.println(queue.take());            } catch (InterruptedException ignored) {            } finally {                writer.close();            }        }    }}

⌨️ 快捷键说明

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