[concurrency-interest] Stupid Question

Vitaly Davidovich vitalyd at gmail.com
Tue Feb 12 16:10:27 EST 2013


I don't think it's that since "this" is already loaded (or else you can't
call the method).  I believe Doug did this because he found that final
field loads weren't commoned across lock() calls (even though they could
be).

Sent from my phone
On Feb 12, 2013 4:04 PM, "Nathan Reynolds" <nathan.reynolds at oracle.com>
wrote:

>  this.lock is a memory indirection (i.e. dereferences "this" to get the
> value in "lock") and could incur a cache miss (i.e. loads ArrayBlockQueue
> into the L1 cache) or even worse false sharing.  By copying to the local
> variable, the value is on the stack.  There won't be any memory indirection
> to access the value.  Cache misses would only happen if the thread context
> switched.  False sharing is impossible.
>
> Nathan Reynolds<http://psr.us.oracle.com/wiki/index.php/User:Nathan_Reynolds>| Architect |
> 602.333.9091
> Oracle PSR Engineering <http://psr.us.oracle.com/> | Server Technology
>  On 2/12/2013 1:41 PM, javamann at cox.net wrote:
>
> Stupid question time. While going through the code for an ArrayBlockQueue I came across numerous instances where the instance 'lock' is copied to a variable in a Method. I know there is a reason for this, I just don't know what it is.
>
> Thanks
>
> -Pete
>
>     public int remainingCapacity() {
>         final ReentrantLock lock = this.lock;
>         lock.lock();
>         try {
>             return items.length - count;
>         } finally {
>             lock.unlock();
>         }
>     }
>
> _______________________________________________
> Concurrency-interest mailing listConcurrency-interest at cs.oswego.eduhttp://cs.oswego.edu/mailman/listinfo/concurrency-interest
>
>
>
> _______________________________________________
> Concurrency-interest mailing list
> Concurrency-interest at cs.oswego.edu
> http://cs.oswego.edu/mailman/listinfo/concurrency-interest
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cs.oswego.edu/pipermail/concurrency-interest/attachments/20130212/694dc7b9/attachment.html>


More information about the Concurrency-interest mailing list