1. A portable thread environment comprising: an application programming interface configured to support multiple application program tasks with each task comprised of one or more threads; host adaptation logic for communicatively interfacing said tasks and threads with a host processing environment; and a scheduler configured to determine an execution order of said one or more threads based on one or more execution variables.