1. A packet processing method comprising: receiving a packet for processing at a router; associating the packet with a context thread running in a stream on a multi-streaming processor; assigning the context thread an initial priority; assigning an initial stream execution priority to the stream; processing the context thread if its context thread priority is equal to or greater than the stream execution priority; selectively lowering the context thread priority based on an initial processing of the packet; continuing processing the context thread until there is a waiting context thread with a higher context thread priority; and lowering the stream execution priority upon completion of processing.