1. A method for storing a speculative state of a thread that is being executed by a processor in accordance with a thread level speculative execution technique, the method comprising: executing a thread in accordance with a thread level speculative execution technique including maintaining, within the processor, a speculative state of the thread; detecting that the thread will be preempted while being executed in accordance with the thread level speculative execution technique; and storing the speculative state to allow the speculative state to be recreated within the processor when execution of the thread is resumed.