The approach to parallel programming is fairly standard via parallel data structures. A single new ParallelArray object provides all of the new behaviour needed. You can convert a standard array, including a Canvas pixel array, into a ParallelArray or create a new object using raw data. Once you have a ParallelArray you can operated on it using new parallel methods such as map, reduce, combine, filter etc. All synchronization and locking is taken care of automatically.
You can see River Trail in action in an application that is closer to a 3D game in the following video, but the sound quality is poor.
If you use antibiotics against bacteria then antibiotic resistance is inevitable. However, if you use multiple antibiotics in a clever way you can engineer the bacterial population to remain unchanged [ ... ]