 Another optimization, called "lazy scheduling", avoids traversing scheduling queues during IPC by leaving threads that block during IPC in the ready queue.Once the scheduler is invoked, it moves such threads to the appropriate waiting queue.As in many cases a thread gets unblocked before the next scheduler invocation, this approach saves significant work.