[英]Running Two Functions Simultaneously With Time.Sleep() in Python
import threading
import time
array_values = []
def a(array):
time.sleep(1)
array.append('a')
def b(array):
time.sleep(5)
array.append('b')
def runInParallel(*fns):
z = 0
while z < 6:
if __name__ == '__main__':
proc = []
for fn in fns:
p = threading.Thread(target=fn, args=(array_values,))
p.start()
proc.append(p)
for p in proc:
p.join()
z += 1
runInParallel(a, b)
print(array_values)
當前代碼輸出
['a', 'b', 'a', 'b', 'a', 'b', 'a', 'b', 'a', 'b', 'a', 'b']
但是,目標是使程序同時運行,以便在功能b的等待時間長為5秒的同時,功能a正在運行,並且僅休眠1秒。
期望的輸出
['a', 'a', 'a', 'a', 'b', 'a', 'a', 'a', 'a', 'b', 'a', 'a'.....so on]
我還嘗試了多處理,但是了解到它沒有使用共享內存,因此不適合使用同一列表,任何幫助都很棒! 謝謝!
import threading
import time
array_values = []
def a(array):
time.sleep(1)
array.append('a')
def b(array):
time.sleep(5)
array.append('b')
def runInParallel(*fns):
z = 0
while z < 6:
if __name__ == '__main__':
proc = []
for fn in fns:
p = threading.Thread(target=fn, args=(array_values,))
p.start()
proc.append(p)
for p in proc:
p.join()
z += 1
runInParallel(a, b)
print(array_values)
當前代碼輸出
['a', 'b', 'a', 'b', 'a', 'b', 'a', 'b', 'a', 'b', 'a', 'b']
但是,目標是使程序同時運行,以便在功能b的等待時間長為5秒的同時,功能a正在運行,並且僅休眠1秒。
期望的輸出
['a', 'a', 'a', 'a', 'b', 'a', 'a', 'a', 'a', 'b', 'a', 'a'.....so on]
我還嘗試了多處理,但是了解到它沒有使用共享內存,因此不適合使用同一列表,任何幫助都很棒! 謝謝!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.