public int addAndGet(T obj, int delta) {
        int prev, next;
        do {
            prev = get(obj);
            next = prev + delta;
        } while (!compareAndSet(obj, prev, next));
        return next;
    }
public int addAndGet ( T obj , int delta ) { int prev , next ; do { prev = get ( obj ) ; next = prev + delta ; } while ( ! compareAndSet ( obj , prev , next ) ) ; return next ; }
Atomically adds the given value to the current value of the field of
the given object managed by this updater.

@param obj An object whose field to get and set
@param delta the value to add
@return the updated value