MiP*_*mic 6 python simulation resources multithreading multiprocess
简单的研究是: 蚁群模拟
我正在创建一个OO结构,它可以看到Anthill的类,Ant的类和整个模拟器的类.
现在我正在集思广益"如何"让蚂蚁"活着"......
我知道有这样的项目刚刚开始,但我正在集思广益,我不是在寻找一种刚刚准备好吃的菜.
我真的需要做一些测试来理解"什么是更好",在Python中,AFAIK Threads使用的内存少于进程.
当你开始模拟时"蚂蚁"必须做的只是:随机方向移动,如果他们找到食物 - >吃/带到蚁丘,如果他们发现另一只蚂蚁从另一个运送食物的蚁丘 - >攻击 - >收集食物 - >做必须做的事......等等......这意味着我必须在蚂蚁和整个环境中"分享"信息.
所以我重写:最好为每个Ant或其他东西创建一个进程/线程?
编辑:由于我的问题"什么是更好的",我提出了我收到的所有聪明的答案,我也对它们发表评论.经过我的测试,我会接受最好的答案.
我同意@delan - 为每个蚂蚁分配整个线程似乎有点矫枉过正,特别是如果你想将其扩展到整个蚁丘,其中有数千只小动物在四处奔跑。
相反,您可能会考虑使用一个线程在一个“周期”中更新许多蚂蚁。根据您的编写方式 - 您需要仔细考虑需要共享哪些数据 - 您甚至可以使用这些线程池来扩展您的模拟。
另请记住,在 CPython 中,GIL 会阻止多个本机线程同时执行代码。