大量の処理を行う時、

for(i = 0 ; i < 10000 ; i++)
{
printf("Hello!!\n");
}
こうするとCPU使用率が100%になってしまうので、

for(i = 0 ; i < 10000 ; i++)
{
printf("Hello!!\n");
Sleep(1);
}
こうしてみたら、CPU使用率1%位になったのですが、処理に時間がかかりすぎます。
精度は別として1msのウェイトを入れているから当たり前なのですが。

実際には延々と裏で走り続けるプログラムなので、100%はまずいのですが、
速度もある程度維持したいので Sleep(1); はちょっと遅すぎます。

この辺の調整方法で正攻法というのはありますでしょうか?