2
我在python中編寫了一個簡單的多進程和多線程代碼,它在windows中工作,但在linux中不工作(我在freebsd和ubuntu上測試過)python time.sleep()在linux和多線程中不起作用
import threading
import time
from multiprocessing import Process
class Test(threading.Thread):
def run(self):
print('before sleep')
time.sleep(1)
print('after sleep')
def run_test():
Test().start()
if __name__ == "__main__":
Process(target=run_test, args=()).start()
這個程序只打印「睡前」然後退出。
爲什麼睡眠不起作用? (它在Windows)
UPDATE:
我使用join()方法在我的過程是這樣的,但還是不行。
...
if __name__ == "__main__":
pr = Process(target=run_test, args=())
pr.start()
pr.join()
了'main'過程和進程產生既終止之前線程必須打印的機會休息。你應該讓他們等待/加入(提示) – Pynchia
@Pynchia,我測試.join()並在主進程中休眠,但它不起作用。 –
順便說一句,如果'Test'繼承自'Thread',爲什麼重寫'__init__'如果它什麼也不做? – Pynchia