1. A method, in a data processing system, for performing a wake-and-go operation, the method comprising: detecting a thread that is waiting for an event associated with a target address, wherein the event is based on a value being written to the target address that relates to an expected data value by a comparison type; writing, by a wake-and-go mechanism, an entry in a wake-and-go storage array, wherein the entry comprises the target address, the expected data value, and the comparison type; placing the thread in a sleep state; responsive to an event that modifies a data value at the target address, performing a comparison based on the value being written, the expected value, and the comparison type; and responsive to the comparison matching, placing the thread in a non-sleep state.