| 程序包 | 说明 |
|---|---|
| com.alibaba.jvm.sandbox.api.http.printer |
| 限定符和类型 | 类和说明 |
|---|---|
class |
ConcurrentLinkedQueuePrinter
高性能文本输出
高性能背后的代价就是相对比较高的CPU开销
|
| 限定符和类型 | 方法和说明 |
|---|---|
Printer |
Printer.broken()
打断
将会唤醒因
waitingForBroken()或waitingForBroken(long, TimeUnit)而被阻塞的线程 |
Printer |
ConcurrentLinkedQueuePrinter.broken() |
Printer |
Printer.flush()
刷盘
|
Printer |
ConcurrentLinkedQueuePrinter.flush() |
Printer |
Printer.print(String string)
输出文本
|
Printer |
ConcurrentLinkedQueuePrinter.print(String string) |
Printer |
Printer.println(String string)
输出文本
|
Printer |
ConcurrentLinkedQueuePrinter.println(String string) |
Printer |
Printer.waitingForBroken()
挂起当前线程,等待被打断
线程挂起等待输出被打断
因为HTTP请求是短连接,所以这里为了避免线程立即返回,可以使用这个方法来阻塞当前Http请求响应线程,直至阻塞被中断
被打断过的请求无法再次被挂起等待,当曾经被调用过
broken()之后,再次调用本方法将无法阻塞当前线程
有两种场景会打断本次挂起,任何以下场景都能结束并唤醒当前被阻塞的线程
网络I/O被中断
broken()被调用
Thread.interrupt()被调用
|
Printer |
ConcurrentLinkedQueuePrinter.waitingForBroken() |
Copyright © 2019 Alibaba Open Source. All rights reserved.