1. A yield instruction for execution on a microprocessor configured to execute concurrent program threads, the instruction comprising: an opcode, for instructing the microprocessor to suspend execution of a thread, wherein the yield instruction is an instruction in said thread; and an operand, wherein if said operand is a first predetermined value the microprocessor terminates execution of said thread, wherein if said operand is a second predetermined value the microprocessor unconditionally reschedules said thread for execution.