1
6
你可能会在这里找到一些灵感: http://wiki.wxpython.org/LongRunningTasks 但是,它是用于多线程的,而不是用于多处理。
您甚至可以通过一个套接字来驱动i/o通信,这样就可以方便的模拟网络管理。 编辑: 多重处理 |
2
2
回答具体问题。
“我用这个吗
使用
“如何从GUI进程轻松访问模拟数据?” 您没有访问模拟过程对象的权限,如果这是您所要求的,那么模拟是一个单独的过程。您可以启动它,停止它,最重要的是,还可以通过发送到模拟器的命令队列发出请求。 “用户应该能够轻松流畅地浏览模拟的时间线。这怎么办?” 这只是设计。单进程、多进程、多线程对这个问题没有任何影响。
|
3
2
在这里,最简单的方法是在单独的线程中启动计算,并使用
|
4
1
不幸的是,尽管您认为GUI的选择不会影响答案是正确的,但是解决这个问题的最佳方法将在很大程度上取决于您的模拟数据到底在做什么。 例如,如果它生成顺序数据,那么它可以通过线程安全或进程安全队列将其提供给GUI。但是,如果它改变了整个数据,并且您的GUI需要能够在任何给定的时间看到快照,那么通过沿队列发送整个状态来解决这一问题的成本可能太高,并且可能需要一种互斥体样式的方法来共享对数据结构的访问。因此,对数据所做工作的性质在这里是至关重要的。 能够 是程序的副本,但通常不是)。同样,很难知道哪种方法最适合您的具体情况,尽管听起来您可以将核心逻辑作为命令行应用程序,并通过管道、套接字等进行通信。 |
5
0
分布式数据对象的多处理或Pyro。 您的模拟将分布式对象提供给GUI,GUI操纵它们并读取它们的属性。 这两个库都将提供在网络上的可扩展性,没有任何麻烦,但可以在本地运行。当您的模拟开始处理太多的数字时,请添加更多的模拟服务器,以提供更多的分布式对象。 |
Mark Boulder · 如何检查jQM弹出窗口是否适合用户的视口? 10 年前 |