我寫了一個我的問題的示例代碼。輸入消息被分成固定塊,並使用有意的隨機延遲進行混合。但是,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)。如果它真的只是你需要的非阻塞睡眠,那可能會有所幫助。 –