1. A method for modifying data shared by multiple computer processing threads, the method comprising: determining, using a processor, whether modifying data associated with a first computer processing thread violates a constraint associated with the data; and responsive to determining that modifying the data associated with the computer processing thread violates the constraint associated with the data, using the data associated with the first computer processing thread to modify data shared by multiple computer processing threads that includes the first computer processing thread, wherein the constraint associated with the data associated with the first computer processing thread represents a portion of a tolerance value that is a) associated with the data shared by the multiple computer processing threads and b) divided among a plurality of constraints, wherein each of the constraints is associated with a different one of the multiple computer processing threads.