如何避免线程在细胞自动机中竞争相同的像素

时间:2013-04-01 08:12:17

标签: java multithreading cellular-automata

我正在编写一个随机细胞自动机,我在网格上播放Cell(定义为一组像素)。 网格在主程序中,我有一个Cell对象的类和一个继承Thread的类,用于Cell行为的随机计算。 我的问题是,当两个单元格接触时,它们可以同时随机获取网格的相同像素,或者可以在没有其他知道的情况下获取它。 因此它会导致一些错误,其中像素不归属于Cell,但Cell仍然将其识别为“自我”。

我的问题是:如何同步(或“优先级”?)线程,以便它们不会同时修改相同的公共组件?

谢谢。

1 个答案:

答案 0 :(得分:0)

使用Java关键字synchronized,或者更确切地说,使用Java Synchronizer Framework中的MutexReentrantLock等新数据结构。

但在此之前,我建议阅读线程编程的介绍......