One of the first multi threaded progs I had to write was a threaded version of Conways Game of Life.
Basically what happens is you have a grid of squares, each can be either 'alive' or 'dead'. Based on rules, in the next step squares can either come alive, die, stay alive or stay dead depending on the squares around it. For example, if a square is alive and has 6 or more (immediate) neighbors it dies of crowding, if it has less than 3 neighbors it dies of loneliness. A dead cell with 3-6 alive neighbors will become alive.
You can mess around with the numbers if you want.
Normally the 'game' (it's actually a simple artificial life simulator) has discrete steps where every square gets to check its neightbors before progressing to the next stage.
In the multi-thread version, have each square running as a separate thread and put a simple GUI on it to show the results...
Help at all?
Dave