实现一个circular buffer 要求 1. 环形结构 2. 宏无锁和有锁支持 3. 提供宏支持针对线程安全和非线程安全 4. buffer 自动扩充或阻塞能力 5. 使用 read 自动返回已收大小或阻塞至完整接口能力 6. 跨 windows/linux 平台 7. 不依赖任何第三方库 有没有参与挑战的