私は私の問題のサンプルコードを書いています。入力メッセージは固定チャンクに分割され、意図的なランダム遅延を使用して混合されます。ただし、sleep()
はブロックされており、次のタスクは実行されません。これは単一のスレッドで可能ですか、マルチスレッドに頼らなければなりませんか?Pythonでトリガされたタスクやイベントを非同期でブロックする方法を教えてください。
from random import randint
from time import sleep
def delay_message(split_message, delay):
#sleep(delay) #this blocks
print("Shuffled message: {} and time: {}". format(split_message, delay))
def main():
message = raw_input('Input: ')
#padding
difference = len(message) % 5
message=message.ljust(len(message)+5-difference, "0")
for i in range(0, len(message), 5):
delay = randint(0, 5)
split_message = message[i:i+5]
delay_message(split_message, delay)
if __name__ == "__main__":
main()
[asyncio'](https://docs.python.org/3/library/asyncio.html)をご覧ください。あなたが必要としているのは本当にノンブロッキングな睡眠であれば、それは助けになるかもしれません。 –