1. A system for supporting efficient packet processing in a network environment, the system comprising: one or more microprocessors and memory; a plurality of DMA engines for processing packets in the network environment; a pool of DMA resources associated with the plurality of DMA engines; a thread scheduling engine, running on the one or more microprocessors; a plurality of software threads, wherein said thread scheduling engine operates to assign a thread key to each software thread in the plurality of software threads; a resource manager which allocates a DMA resource from said pool of DMA resources to said each software thread; and wherein said each software thread operates to request access to the DMA resource assigned to said each software thread by presenting the thread key assigned to said each software thread.