Here is another example for background loading of assets, its a bit more complete than mercuryus' and also shows the usage of mutexes (and yes, they are important as you want atomic read, since you can't gurantee that one thread alters the state while you read it (or vice versa)!)
http://cl.ly/6wN1Btw, as for "you shouldn't use any ent_" functions: You MUST NOT! use any engine function at all in a secondary thread (you can use them on the main thread though). Like I already wrote, gamestudio doesn't impose any kind of locking for its objects so that there is no way to synchronize two or more threads.