So my theory is a multithreaded server to handle connections from players. Currently lets make this a generalization... You would have a player class that handles the player's actions. I would also have something like a world class containing you guessed it the world... now if you have multiple players interacting with the world would it be better to lock the memory or something if someone is already interacting with something? Or should I make a while(function_locked) loop to check the status, but this thought seems it would block and that is the last thing I would want to do. I could see creating a thread from a thread, but it would only blip into existance and then back out probably loosing any efficency that would ever give me. I am thinking if two threads try to add into an array at the same time there would be problems. I would likely use vectors or arrays even a possible linked list from what I have read might be a very viable solution. Back to the problem "pushing" two projectiles onto a list of projectiles at the same time could damage a linked list if they were editing the same space. In an array I would probably get some garbage that would violate a check and be deleted and zeroed out I think a vector would have a similar reaction as with the array. So how do you prevent this, but still make sure the command gets through without tieing a thread up waiting on another thread to finish? Yes it would be a quick function so I could "probably" let it tie itself up and not have huge problems, but on the other hand I want to use threads so I am not waiting on something else to finish before I can do another task.