Q:

Multithreading: Character movement, drawing and socket handling

I am making a small 2d online game and I currently have drawing, character moving and socket handling all done in the main thread. I think that it would be more convenient to create a own thread for those things, especially for the socket handling.
It's my first multi threaded application so should I basically just make the threads with this? I read that I just use mutexes or criticalsections to prevent two threads from accessing the data at the same time, which should I use?

A:

Yes, you should create new threads with CreateThread method. Don't forget to create a message pump in each thread that is supposed to process messages (e.g. asynchronous socket handling).
As for mutexes vs. critical sections: critical sections would be more appropriate as you need to synchronize threads of only one process. For more details, see What is the difference between mutex and critical section? .
It's also convenient to use messages for communication between threads (see PostThreadMessage).

