簡單的研究: 螞蟻生活模擬Ant仿真:最好爲每個Ant或其他東西創建一個Process/Thread?
我創建一個面向對象的結構,它看到一個類的蟻丘,爲螞蟻一類和整個模擬器類。
現在我就頭腦風暴「如何」讓螞蟻「活」 ...
我知道有這樣的剛剛開始,但我頭腦風暴的項目,我不找一個剛準備好吃的菜。
真誠地,我必須做一些測試以理解「什麼是更好的」,Python中的AFAIK線程使用的內存少於進程。
當你開始模擬時,「螞蟻」所要做的只是:如果他們發現食物,隨意移動, - 如果他們發現另一隻螞蟻正在運送食物 - >攻擊 - >收集食物 - >做必須做的事......等等......這意味着我必須在整個環境中「分享」信息。
所以我重寫: 最好爲每個Ant或其他東西創建一個Process/Thread?
編輯: 由於我的問題是「什麼更好」,我提出了所有我收到的智能答案,我也對他們發表了評論。 經過我的測試,我會接受最好的答案。
每個螞蟻一個完整的線程似乎有點矯枉過正。它們比流程便宜,但是它們仍然有*一些*開銷(如果僅僅是上下文切換)並且在CPython中它們甚至不能並行運行(即使/當它們可以時,你仍然受限於沒有核心)。 – delnan 2011-05-31 14:52:43
進程和線程的相對成本也取決於底層操作系統。我同意@delnan:每個螞蟻的線程是矯枉過正的,每個螞蟻的過程都是熱核過度殺傷。 – 2011-05-31 14:54:43
謝謝你們兩位(熱核殺傷力過大),你有什麼建議? – MiPnamic 2011-05-31 14:56:52