1. A method, in a data processing system, for performing a wake-and-go operation, the method comprising: detecting, by a wake-and-go engine within a multiple processor system, a thread that is waiting for an event associated with a target address; populating, by the wake-and-go engine, a central repository wake-and-go storage array with the target address; responsive to detecting that the thread is waiting for the event, placing the thread in a sleep state; responsive to an event that modifies a data value associated with the target address, determining whether to wake the thread; and responsive to a determination to wake the thread, placing the thread in a non-sleep state.