Thread synchronisation

Do it too little and your program is broken

Do it too much and your threads can spend most of their time waiting for each other