工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Python

Pythonのtime.sleep()をマスター:ベストプラクティス、マルチスレッド、実例

Python time.sleep()

time.sleep()は、現在のスレッドを指定された秒数だけ一時停止します。

Pythonのtimeモジュールには、時間を扱うためのさまざまなユーティリティが用意されています。その中で、time.sleep()は意図的な遅延の追加、スレッドの同期、操作のスロットリングに不可欠です。

例1:基本的な使用法

import time
print("即座に表示されます。")
time.sleep(2.4)
print("2.4秒後に表示されます。")

このシンプルなスクリプトは、time.sleep()が浮動小数点引数を受け取ることを示しています。Python 3.5以降では、関数は最小スリープ時間を保証します。それ以前のバージョンでは、わずかに長くスリープする可能性があります。

例2:デジタル時計

import time
while True:
    local = time.localtime()
    print(time.strftime("%I:%M:%S %p", local))
    time.sleep(1)

このループは毎秒現在のローカル時刻を表示します。ターミナルを乱雑にしないよう、同じ行を更新する改良版を以下に示します:

import time
while True:
    local = time.localtime()
    print(time.strftime("%I:%M:%S %p", local), end="", flush=True)
    print("\r", end="", flush=True)
    time.sleep(1)

詳細については、Pythonのtime.sleep()ドキュメントを参照してください。

スレッドの理解

プロセスは実行中のプログラムであり、スレッドはそのプロセス内の軽量な単位です。複数のスレッドは同時に実行され、同じメモリ空間を共有できます。

例3:シンプルなマルチスレッド

import threading
def greet_hello():
    for _ in range(3):
        print("Hello")
def greet_hi():
    for _ in range(3):
        print("Hi")
t1 = threading.Thread(target=greet_hello)
t2 = threading.Thread(target=greet_hi)
t1.start()
t2.start()

t1とt2が並行して実行されるため、出力の順序は実行ごとに変わる可能性があります。

マルチスレッド環境でのtime.sleep()

シングルスレッドプログラムでは、time.sleep()はプロセス全体を停止します。マルチスレッド環境では、呼び出したスレッドのみが一時停止し、他のスレッドは継続して実行されます。

例4:スレッドごとに異なる一時停止

import threading, time
def say_hello():
    for _ in range(4):
        time.sleep(0.5)
        print("Hello")
def say_hi():
    for _ in range(4):
        time.sleep(0.7)
        print("Hi")
t1 = threading.Thread(target=say_hello)
t2 = threading.Thread(target=say_hi)
t1.start()
t2.start()

ここでは、一方のスレッドが0.5秒、もう一方が0.7秒スリープし、独立したペーシングを示しています。

スレッドの詳細については、Pythonのthreadingモジュールを参照してください。

Python

  1. Python データ型マスター: 実践ガイド
  2. Python 演算子完全マスター: 包括的ガイド
  3. Python pass文完全マスター: 実践ガイド
  4. Python 関数引数完全マスター: 位置引数・キーワード引数・デフォルト引数
  5. Python辞書完全ガイド:作成、操作、高度なテクニック
  6. Pythonイテレータ完全ガイド:仕組みと自作方法
  7. Pythonクロージャ解説:ネスト関数が変数を捕捉する仕組み
  8. Python datetimeマスター:日付・時刻・タイムゾーン実践ガイド
  9. Pythonで現在の日付と時刻を取得する実践ガイド
  10. Pythonで現在時刻とタイムゾーンデータを簡単に取得する
  11. Pythonのtimeモジュールをマスター:関数、構造体、実践例