1. A network processor having a plurality of packet classification processors and at least one shared memory, wherein one of the plurality of the packet classification processors generates one or more tasks corresponding to each of a plurality of received packets to be distributed to others of the plurality of the packet classification processors, each of the packet classification processors comprising: a scheduler configured to generate one or more contexts corresponding to tasks received by the packet classification processor distributed by the one of the plurality of packet classification processors; a multi-thread instruction engine configured to process one or more threads of instructions, each thread of instructions corresponding to a context received from the scheduler; a function bus interface configured to transmit the contexts within the multi-thread instruction engine and the scheduler, queue the contexts so that newer context wait for oldest context to be executed, and determine if a function call of the context is a terminating function call that causes the packet classification processor to end context processing and generate an output task for subsequent processing in the network processor; and a thread status manager in communication with the scheduler configured to maintain: (i) a thread status table having N status entries, configured to track up to N active threads, where N is a positive integer, and wherein each status entry corresponds to an active thread, and each status entry comprises a valid status indicator, a sequence value, and a thread indicator value, and (ii) a global sequence counter configured to generate a sequence value for each thread, wherein the global sequence counter is incremented each time processing of a thread is started by the multi-thread instruction engine, and the global sequence counter is decremented each time a thread is completed by the multi-thread instruction engine, whereby a lower relative sequence value indicates an earlier started thread; wherein the scheduler is further configured to schedule instructions for processing by the multi-thread instruction engine in an order in which the threads were started.