Prefetching을 링버퍼를 이용해 구현하려고 합니다.
구현하려는 링버퍼의 동작은 다음과 같습니다.
1. 버퍼에 데이터를 넣는 스레드가 떠 있어서 네트웍으로부터 일정한 크기(예: 1024)의 데이터를 얻어다가 버퍼에 집어넣습니다.
2. 버퍼에서 데이터를 가져가는 스레드는 임의의 크기의 데이터를 가져갑니다.
현재 구현은 head와 tail을 두고 tail이 head를 앞서지 않는 범위에서 각 스레드가 데이터를 버퍼에 넣거나, 버퍼에 있는 데이터를 가져가게끔 했습니다.
그런데 링 구조로 해서 head와 tail 값을 조절하다 보니 어려운 점이 많은데요...
혹시 이런 링 버퍼 구현에 참고할만한 자료나 조언 부탁드립니다.
http://elonen.iki.fi/code/misc-notes/ringbuffer/
이 문서는 읽어봤는데,