1. A method of processing multiple threads of commands in a network processor having a plurality of processing modules and at least one shared memory: generating, by at least one of the plurality of processing modules, one or more tasks corresponding to each packet received by the network processor; receiving, by a module packet processor (MPP) of the network processor, the one or more tasks; associating, by a scheduler of the MPP, each received task with a command flow of the MPP, and writing, by a thread updater of the MPP, state data corresponding to the flow to a context memory of the MPP; scheduling, by the scheduler, an order of processing of the command flows of the MPP; if a processing thread of one or more multi-thread processors of the MPP is available: loading, by the thread updater from the context memory, state data for at least one scheduled flow to a corresponding one of the multi-thread processors; processing, by the corresponding multi-thread processor, a next command of the flow, the next command determined based on the loaded state data, wherein the step of processing the next command includes storing, by one or more virtual address translation tables in the corresponding multi-thread processor, control data associated with each thread operation that define an level of data access allowed to the next command in a local level-one cache in the corresponding multi-thread processor; and if the processed command of the flow requires operation of one or more of a plurality of co-processor modules of the MPP: sending, by the multi-thread processor, a co-processor operation request to a co-processor interface of the MPP; suspending processing of the first flow of the multi-thread processor; and switching, by the multi-thread processor, command processing from the first flow of the multi-thread processor to a second flow of the multi-thread processor.