 Although you won't need it for  <a href="http://www.cs.wisc.edu/~cs537-1/project1.html">project 1</a>, the next project will require to to synchronize thread with each other. There are two reasons why you need to do this: to prevent threads from interferring with each other, and to allow them to cooperate. You use <samp><font color="0f0fff">synchronized</font></samp> methods to prevent interference, and the built-in methods <samp><font color="0f0fff">Object.wait()</font></samp>, <samp><font color="0f0fff">Object.notify()</font></samp>, <samp><font color="0f0fff">Object.notifyAll()</font></samp>, and <samp><font color="0f0fff">Thread.yield()</font></samp> to support cooperation. <p>
