2 回答

TA貢獻1772條經(jīng)驗 獲得超8個贊
根據(jù)您的圖片,您想要的是啟動該功能一定次數(shù)(4?),然后并行運行。在單核上,與正常行為一樣,直接并行處理是不可能的。您需要訪問其他核心并管理分散的處理。while
在那里沒用。我擔心難度超過你目前的技能,但我們開始吧。
您(可能取決于您的函數(shù)的實際內存安全性)需要的總體流程是:
- 為您想要的運行次數(shù)創(chuàng)建一個具有設定線程數(shù)的線程池。
- 指示您需要運行的功能
- 啟動它們,確保啟動本身是非阻塞的。
- 確保一個函數(shù)的處理不會影響另一個函數(shù)的結果。競爭條件是一個常見問題。
- 再次以非阻塞方式收集結果。
您可以使用多種方法。我強烈建議您閱讀以下文檔。
線程:
https ://docs.python.org/3/library/threading.html
多處理:
https ://docs.python.org/3/library/multiprocessing.html

TA貢獻1856條經(jīng)驗 獲得超11個贊
我不明白你的問題,因為我不明白你的功能應該做什么。
while True:
將始終創(chuàng)建一個無限循環(huán)?!皐hile”是一個命令,它告訴 python 循環(huán)遍歷下面的塊,只要它后面的表達式計算為 True。True 總是計算為 True。
似乎您想使用條件,就像您在“while x < 4”中所做的那樣。
x < 4
...是一個表達式,當 x 小于 4 時計算結果為 true,如果 x 不小于 4,則計算結果為 false。行以下的所有內容:
while x < 4:
如果 x 小于 4 則將運行,當它運行完該代碼時,它將返回并再次評估 x 是否小于 4,如果是,則再次運行代碼。要在該循環(huán)中包含另一個 while 循環(huán),該新循環(huán)還需要一個表達式來評估。如果要計算相同的表達式,請將其寫出:
while x < 4: # do something while x < 4: #do more things # do even more things # change x at some point, or else you're in an infinite loop.
但是,沒有理由專門這樣做,因為您已經(jīng)在這樣做了。所有代碼僅在 x < 4 時運行,因此再次檢查該條件是多余的,并且在另一個循環(huán)中執(zhí)行它是沒有意義的。如果內部循環(huán)也在增加 x,那么外部循環(huán)將不會循環(huán)并且不需要增加 x。
此外,如果您希望函數(shù)根據(jù)函數(shù)外部的變量檢查條件,則需要將內容傳遞給該函數(shù)。
添加回答
舉報