【Python入門】sleep関数の使い方|ミリ秒単位の指定方法を解説

  • 2026.04.24
       
【Python入門】sleep関数の使い方|ミリ秒単位の指定方法を解説

Pythonで、「決まった時間だけ処理の実行を遅らせたい」 などといった時に活用できるのが、 sleep関数です。
処理タイミングの調整によく活用される関数であり、APIの実行時などでも利用されるため、覚えておくと便利な関数の1つでもあります。

今回は、sleep関数の基本的な使い方や、非同期処理でスリープを実行する方法などについて、詳しく解説していきたいと思います。

sleep関数とは?

sleep関数は、timeモジュールに含まれている関数の1つで、プログラムの処理を一時停止(スリープ) させるために使用されます。
この関数を使用することで、指定した秒数の間だけ処理を止め、時間経過後に再び処理を再開させることができます。

主に、以下のようなケースで利用されている関数です。

  • 特定の処理を一定時間後に実行させたい場合
  • 一定間隔で処理を繰り返し実行させたい場合
  • 処理の間に待ち時間を意図的に挟みたい場合

具体的には、APIの呼び出し間隔を空けたり、負荷を調整したりする場面で活用されています。

基本的な使い方

まずは、sleep関数の基本的な使い方について見ていきましょう。

sleep関数の書き方

sleep関数を使用する際は、事前にモジュールをインポートしておく必要があります。

Python
import time

関数の基本構文は、以下の通りです。

Python
time.sleep(秒数)

引数には、停止させたい時間を秒単位で指定します。

sleep関数でプログラムを数秒間停止させる

以下の簡単な例を元に、実際の動きを見てみましょう。

Python
import time

print("処理開始")

time.sleep(3)

print("処理再開")

上記の例では、sleep関数によってプログラムの実行を3秒停止させています。
実際にコードを実行すると、2回目の出力が1回目の出力からおおよそ3秒後に実行されるのが分かるかと思います。

これが、sleep関数の基本的な使い方です。

ミリ秒単位を引数で受け取る方法

sleep関数では、引数に小数を指定することにより、ミリ秒単位での調整を行うこともできます。

Python
import time

print("処理開始")

time.sleep(0.005)

print("処理再開")

上記の例の場合、0.005秒 (= 5ミリ秒) の停止の後に処理が再開されます。
細かいタイミングを調整したい時に役立つ方法ですが、後述するように精度には限界があるため、注意が必要です。

非同期処理での待機と精度の注意点

非同期処理の途中でスリープを実行したい場合には、time.sleep() とは異なる方法で実装する必要があります。
具体的な方法について見ていきましょう。

asyncio.sleepの使い方

time.sleep()は同期的に処理を実行するため、使用するとプログラム全体が一時停止されてしまい、並行して複数の処理を実行することができません。

代わりに使用するのが、asyncio.sleep()です。
asyncio.sleep()は、Pythonの非同期処理ライブラリであるasyncioに含まれている関数で、async/await構文と組み合わせて使用します。

Python
import asyncio

async def sampleFunc1():

    print("処理開始")

    await asyncio.sleep(1)

    print("処理再開")

このように、async関数内で asyncio.sleep()を使用することにより、特定の処理のみを一時停止することができます。
非同期処理でスリープを行う場合は、この方法を使用するのが一般的です。

待機時間のズレと精度の限界

sleep関数は、「指定した時間だけ処理の実行を待つ」 関数ですが、厳密には正確な時間制御ができるわけではありません。

例えば、ループ内で sleep関数を使用し、一定間隔で処理を行うコードを実行した場合、実際の間隔には以下の要素にかかる時間も含まれます。

  • sleep関数自体の呼び出しにかかる時間
  • sleep関数以外の処理にかかる時間

sleep関数で同じ秒数だけ処理を停止しても、上記の要素にかかる時間が毎回同じであるとは限らないため、各ループごとの実行間隔には僅かな誤差が発生することになります。
通常のアプリケーションでは問題にならないことがほとんどですが、ミリ秒単位での正確さが求められる処理では、より正確なタイミング制御を可能とする仕組み (signalモジュールなど) を使用する必要があるため、注意が必要です。

まとめ

sleep関数は、シンプルながらに様々な場面で活用されている便利な関数です。
タイミング調整にある程度の限界があるなど、使用する上で注意すべき点もありますが、実際の開発でも使用されるケースは多々あるため、asyncio.sleep() と合わせて使い方をしっかりと把握し、適切に使い分けられるようにしておきましょう。

Pythonの勉強方法は?

書籍やインターネットで学習する方法があります。昨今では、YouTubeなどの動画サイトやエンジニアのコミュニティサイトなども充実していて多くの情報が手に入ります。
そして、より効率的に知識・スキルを習得するには、知識をつけながら実際に手を動かしてみるなど、インプットとアウトプットを繰り返していくことが重要です。特に独学の場合は、有識者に質問ができたりフィードバックをもらえるような環境があると、理解度が深まるでしょう。

ただ、Pythonに限らず、ITスキルを身につける際、どうしても課題にぶつかってしまうことはありますよね。特に独学だと、わからない部分をプロに質問できる機会を確保しにくく、モチベーションが続きにくいという側面があります。独学でモチベーションを維持する自信がない人にはプログラミングスクールという手もあります。費用は掛かりますが、その分スキルを身につけやすいです。しっかりと知識・スキルを習得して実践に活かしたいという人はプログラミングスクールがおすすめです。

プログラミングスクールならテックマニアがおすすめ!

ITスキル需要の高まりとともにプログラミングスクールも増えました。しかし、どのスクールに通うべきか迷ってしまう人もいるでしょう。そんな方にはテックマニアをおすすめします!これまで多くのITエンジニアを育成・輩出してきたテックマニアでもプログラミングスクールを開講しています。

<テックマニアの特徴>
・たしかな育成実績と親身な教育 ~セカンドキャリアを全力支援~
・講師が現役エンジニア ~“本当”の開発ノウハウを直に学べる~
・専属講師が学習を徹底サポート ~「わからない」を徹底解決~
・実務ベースでスキルを習得 ~実践的な凝縮カリキュラム~

このような特徴を持つテックマニアはITエンジニアのスタートラインとして最適です。
話を聞きたい・詳しく知りたいという方はこちらからお気軽にお問い合わせください。

     

Programmingカテゴリの最新記事