1. An apparatus comprising: execution resources to execute a plurality of instructions; a monitor to detect a low progress indicating a condition of said execution resources, said monitor to selectively disrupt processing of at least one program by transferring to a handler in response to detecting said low progress indicating condition, wherein the monitor logic comprises event storage logic to indicate when one of a plurality of events occur, the low progress indicating condition to include a combination of the plurality of events, wherein the event storage logic to include a plurality of event counters, each of the plurality of event counters to hold a count value corresponding to a number of events of the plurality of events that have occurred, wherein the low progress indicating condition occurs when a certain value of the count value has occurred; a virtual thread selector to select a virtual thread from a plurality of threads and swap context information for a selected virtual thread in response to the monitor logic detecting the low progress indicating condition during the execution logic executing the program; and a processor thread selector to select between the selected virtual thread and another thread.