1. A computer implemented method for managing thread performance in a computing environment, the method comprising: assigning a thread performance counter to threads being created in the computing environment, the thread performance counter measuring a number of cache misses for a corresponding thread; calculating a self-thread value S as a change in the thread performance counter of a given thread during a predetermined period; calculating an other-thread value O as a sum of changes in all the thread performance counters during the predetermined period minus S; calculating a first estimation adjustment value associated with a first probability that a second set of cache misses for the corresponding thread replaces a cache area currently occupied by the corresponding thread; estimating a cache occupancy for the given thread based on a previous occupancy E for the following: the given thread, S, O, and the first estimation adjustment value, wherein the estimating of the cache occupancy for the given thread based on the previous occupancy comprises solving for E′ using the equation: 
 E′=E ·(1− O·p 1)+( C−E )· S·p 2; and wherein S is the change in the thread performance counter of the given thread during the predetermined period, O is the sum of changes in all the thread performance counters during the predetermined period minus S, E is the previous occupancy for the following: the given thread, S, O, and the first estimation adjustment value, wherein p1 is the probability that the second set of cache misses for the corresponding thread replaces the cache area currently occupied by the corresponding thread, C is a total number of cache areas in a shared last level cache, and p2 is the second probability that the cache miss subsequently consumes the cache area not currently occupied by the corresponding thread; and assigning computing environment resources to the given thread based on the estimated cache occupancy.