My code almost works as follows:


one thread for rendering and updating the controls (called the main thread) and several threads for updating the game logic/physics.

So What I basically do in the game loop is:
Main thread - Update input
Main thread - Start worker threads
Worker thread - Update some stuff 1
Worker thread - Update some stuff 2
Worker thread - Update some stuff 3
Main thread - Wait till all worker threads are finished (synchronize)
Main thread - Render

Maybe I can update the input while im rendering. U don't think ist a good idea to update the game logic/physics while rendering. This may cause (if you have a low frame rate) some things update to late or to early. For example: in a race game when you are driving behind a car, it may look like the car is "jumpy".
May be this can be done for none important stuff like particles.