📄 logwriter.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 + -