1. A computer implemented method of load balancing a multiprocessor computer system, comprising the following steps: determining the state of each of two or more processors, wherein the state includes at least one of a source and sink state; and if at least one of the two or more processors is in a source state and at least one of the two or more processors is in a sink state, transferring at least one thread from a queue of a source state processor to a queue of a sink state processor.