import random
import queue as Queue
import _thread as Thread
a = Queue.Queue()
def af():
while True:
a.put(random.randint(0,1000))
def bf():
while True:
if (not a.empty()): print (a.get())
def main():
Thread.start_new_thread(af,())
Thread.start_new_thread(bf,())
return
if __name__ == "__main__":
main()
上面的代碼工作正常極高的CPU佔用率基本多,我試圖用多用無濟於事。我曾嘗試具有無限循環和隊列
def main():
multiprocessing.Process(target=af).run()
multiprocessing.Process(target=bf).run()
和
def main():
manager = multiprocessing.Manager()
a = manager.Queue()
pool = multiprocessing.Pool()
pool.apply_async(af)
pool.apply_async(bf)
都沒有工作,任何人都可以幫我嗎?謝謝一堆^ _^
感謝ü非常的答案,但是我沒有看到反對的線程方法CPU使用率的下降,什麼是我做錯了? – tomato
我認爲這是預期的。擁有一個主要計算隨機數的「while true」循環肯定會佔用CPU資源。你可以通過很少的方法來調節,一種是將'sleep'語句放在* af'和'bf''函數中(比如說2秒),然後看看是否會降低CPU使用率。 – sal