这篇文章探讨了协程和线程之间的区别,主要集中在调度方式及其实现上。作者通过与朋友的讨论,思考了抢占式调度与非抢占式调度的不同,并指出协程在调度时不一定都是非抢占式的。文章指出,协程的本质是一种回调机制,是组织代码的一种方式,而线…
本文讨论了一个支持自动重连的客户端设计与实现,主要用于长连接通讯。客户端在启动后会尝试连接服务端,若连接失败则会等待并重试,直到满足停止重连的条件。设计中强调了客户端的线程安全性,并定义了主要接口,包括启动、暂停、恢复和关闭连接…
编写 Java 程序时经常遇到烦人的必检异常。在一些情况下,我们需要在不能抛出必检异常的环境下抛出异常,这时我们可以使用工具类 Exceptions.throwExceptionSneakily(Throwable)。通过编写一…