[
https://issues.apache.org/jira/browse/ZOOKEEPER-955?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13993953#comment-13993953
]
Michi Mutsuzaki commented on ZOOKEEPER-955:
-------------------------------------------
Please let me know if this is something we still want to do. Otherwise I'll
close it as wontfix.
> Use Atomic(Integer|Long) for (Z)Xid
> -----------------------------------
>
> Key: ZOOKEEPER-955
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-955
> Project: ZooKeeper
> Issue Type: Improvement
> Components: java client, server
> Reporter: Thomas Koch
> Assignee: Thomas Koch
> Priority: Trivial
> Fix For: 3.5.0
>
> Attachments: ZOOKEEPER-955.patch
>
>
> As I've read last weekend in the fantastic book "Clean Code", it'd be much
> faster to use AtomicInteger or AtomicLong instead of synchronization blocks
> around each access to an int or long.
> The key difference is, that a synchronization block will in any case acquire
> and release a lock. The atomic classes use "optimistic locking", a CPU
> operation that only changes a value if it still has not changed since the
> last read.
> In most cases the value has not changed since the last visit so the operation
> is just as fast as a normal operation. If it had changed, then we read again
> and try to change again.
> [1] Clean Code: A Handbook of Agile Software Craftsmanship (Robert C. Martin)
--
This message was sent by Atlassian JIRA
(v6.2#6252)