1. A system for supporting efficient packet processing in a network environment, comprising: one or more microprocessors; a thread scheduling engine, running on the one or more microprocessors, wherein said thread scheduling engine operates to assign a thread key to each software thread in a plurality of software threads; a pool of direct memory access (DMA) resources that operate to process packets in the network environment; and wherein each said software thread operates to request access to a DMA resource in the pool of DMA resources by presenting an assigned thread key.