1. A method, in a data processing system comprising at least one physical processor and a memory, for dynamically adjusting assignment of software threads to hardware threads in virtual machine (VM) environments, the method comprising: receiving, by a virtual machine manager (VMM) executing in the data processing system, an indication of workload priority from a plurality of VMs executing in the data processing system, wherein the indication indicates a priority of a workload executing on each VM in the plurality of VMs; providing, by the VMM, an indication of physical resource usage to each VM in the plurality of VMs, wherein the indication of physical resource usage is an indication of physical resource usage across all VMs in the plurality of VMs executing in the data processing system; and automatically adjusting, by each VM in the plurality of VMs, assignment of corresponding software threads to hardware threads based on the indication of physical resource usage and a priority of a workload executing on the VM, to achieve a balance of usage of hardware threads across all VMs in the plurality of VMs.