环形缓冲区其实就是数组 buf[len]
1.空的时候w = r
2.写:buf[w]=val
w=(w+1)%len;
3.读val=buf[r];
r=(r+1)%len;
4.满
(w+1)%len=r