Очевидно, домашнее задание, так что намек:
Спросите себя, если бы вы решили спать, как долго вы должны спать? Что произойдет, если вы выберете слишком малое время ожидания, а что если оно будет слишком большим?
И наоборот, сколько времени занимает заполнение буфера? Это нормально для приложения, чтобы буферизовать данные в течение короткого времени, или это нужно эти данные как можно скорее?