我正在编写一个模拟game of life的多线程Java程序。每个单元有一个线程计算单元活动值的下一个值。我解决了%95问题线程正常工作和同步,但我无法弄清楚如何在每一步后打印出单元格矩阵。我的帖子中有以下运行方法:
public void run(){
while(true){ //this may also be finite
calculateNeighbourCount(); //threads count their alive neighbours
calculateBarrier(); //Threads wait until all threads complete calculation before changing content
next();//threads make cell's value the next computed value.
nextBarrier(); //Threads wait until all threads complete next()
//Here I want to print out cell matrix
}
}
我能想到的一个可能的解决方案是考虑迭代次数来分配内存。例如,如果我有mxn单元矩阵和k次迭代,我需要mxnxk 3d数组。然后我在这个数组中存储具有适当索引的输出并在执行后输出。但是由于内存使用,这个解决方案似乎非常糟糕。当所有单元格一起更改时,我需要一种解决方法来打印矩阵的快照。