1. A method for starting up a virtual machine, said virtual machine emulating a multi-processor computing device, said emulation comprising an emulation of a first virtual processor corresponding to one processor of the multi-processor computing device and an emulation of a second virtual processor corresponding to another processor of the multi-processor computing device, said method comprising: generating an initial state of said virtual machine having a guest operating system executing on the first virtual processor corresponding to a first thread of execution, issuing a startup command by the first virtual processor to the second virtual processor corresponding to a second thread of execution; providing said second virtual processor and its corresponding second thread of execution with the highest priority for utilizing hardware resources so that the second virtual processor can begin a startup in response to receiving the startup command issued by the first virtual processor; forcing the first virtual processor and its corresponding first thread of execution to relinquish control of at least one hardware resource and providing control to the at least one hardware resource to the second virtual processor and its corresponding second thread of execution; said second virtual processor and its corresponding second thread of execution completing the startup.