Pythonスリープ()
Python スリープ()
sleep() 関数は、指定された秒数の間、現在のスレッドの実行を一時停止 (待機) します。
Python には time という名前のモジュールがあり、時間関連のタスクを処理するためのいくつかの便利な関数を提供します。その中で人気のある関数の 1 つが sleep()
です。 .
sleep()
関数は、指定された秒数の間、現在のスレッドの実行を一時停止します。
例 1:Python sleep()
import time
print("Printed immediately.")
time.sleep(2.4)
print("Printed after 2.4 seconds.")
このプログラムの仕組みは次のとおりです。
"Printed immediately"
印刷されています- 実行を 2.4 秒間中断 (遅延) します。
"Printed after 2.4 seconds"
上記の例からわかるように、 sleep()
引数として浮動小数点数を取ります。
Python 3.5 より前 、実際の中断時間は time()
に指定された引数よりも短い場合があります 関数。
Python 3.5 以降 、中断時間は少なくとも指定された秒になります。
例 2:Python でデジタル時計を作成する
import time
while True:
localtime = time.localtime()
result = time.strftime("%I:%M:%S %p", localtime)
print(result)
time.sleep(1)
上記のプログラムでは、無限 while ループ内で現在の現地時間を計算して出力しました。その後、プログラムは 1 秒間待機します。ここでも、現在の現地時間が計算されて出力されます。このプロセスは続きます。
プログラムを実行すると、出力は次のようになります:
02:10:50 PM 02:10:51 PM 02:10:52 PM 02:10:53 PM 02:10:54 PM ... .. ...
これは、上記のプログラムをわずかに変更した改良版です。
import time
while True:
localtime = time.localtime()
result = time.strftime("%I:%M:%S %p", localtime)
print(result, end="", flush=True)
print("\r", end="", flush=True)
time.sleep(1)
詳細については、Python シェルのデジタル時計にアクセスしてください。
Python でのマルチスレッド
sleep()
について話す前に マルチスレッド プログラムでは、プロセスとスレッドについて話しましょう。
コンピュータプログラムは、命令の集まりです。プロセスとは、これらの命令の実行です。
スレッドはプロセスのサブセットです。プロセスは 1 つ以上のスレッドを持つことができます。
例 3:Python マルチスレッド
この記事の上記のプログラムはすべてシングルスレッド プログラムです。マルチスレッド Python プログラムの例を次に示します。
import threading
def print_hello_three_times():
for i in range(3):
print("Hello")
def print_hi_three_times():
for i in range(3):
print("Hi")
t1 = threading.Thread(target=print_hello_three_times)
t2 = threading.Thread(target=print_hi_three_times)
t1.start()
t2.start()
プログラムを実行すると、出力は次のようになります:
Hello Hello Hi Hello Hi Hi
上記のプログラムには 2 つのスレッド t1 があります と t2 .これらのスレッドは t1.start()
を使用して実行されます と t2.start()
t1 に注意してください と t2 同時に実行すると、異なる出力が得られる場合があります。
Python のマルチスレッドについて詳しくは、このページをご覧ください。
マルチスレッド プログラムでの time.sleep()
sleep()
関数は、指定された秒数の間、現在のスレッドの実行を中断します。
シングルスレッドプログラムの場合、sleep()
スレッドとプロセスの実行を中断します。ただし、この関数は、マルチスレッド プログラムのプロセス全体ではなくスレッドを中断します。
例 4:マルチスレッド プログラムでの sleep()
import threading
import time
def print_hello():
for i in range(4):
time.sleep(0.5)
print("Hello")
def print_hi():
for i in range(4):
time.sleep(0.7)
print("Hi")
t1 = threading.Thread(target=print_hello)
t2 = threading.Thread(target=print_hi)
t1.start()
t2.start()
上記のプログラムには 2 つのスレッドがあります。 time.sleep(0.5)
を使用しました および time.sleep(0.75)
これら 2 つのスレッドの実行をそれぞれ 0.5 秒と 0.7 秒中断します。
推奨読書: Python time.sleep() はスレッドをスリープします
Python