例えば 30 秒待たせる処理を実装する場合は、開始時刻を記録して、現在の時刻と開始時刻の秒数の差が 30 を超えるまで何もしないループを続けるようなプログラムを書くのはやめましょう。
理由は、実際にそのようなプログラムを実行してタスクマネージャを起動してみるとわかるのですが、CPU 使用率が異常に上がり、CPU に負荷が掛かるからです。低級言語(機械語に近い言語)であるほど CPU への負荷は顕著に現れます。
しかし、言語によってはそれが唯一の方法であることもあるので、詳しくはその言語について調べましょう。
少なくとも、Java ではThread.sleep()、JavaScript では setTimeout() などを使いましょう。C 言語の場合は OS に依存するのですが、sleep 、wait などという名前の関数が用意されているはずです。