java.nio.*Buffer read/write atomicity (original) (raw)
Aleksey Shipilev aleksey.shipilev at oracle.com
Thu Dec 20 17🔞32 UTC 2012
- Previous message: java.nio.*Buffer read/write atomicity
- Next message: java.nio.*Buffer read/write atomicity
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 12/20/2012 09:11 PM, mark.reinhold at oracle.com wrote:
2012/12/19 12:37 -0800, david.holmes at oracle.com:
If multiple threads have to synchronize access to the buffer then the reads/writes do not need to be atomic. Atomicity is only needed when data races are allowed. Correct. Byte buffers, especially the direct variety, are all about performance. Making operations upon them atomic is not a problem that needs to be solved.
I would say that you can have the read/write atomicity for heap ByteBuffers without the compromises in performance (i.e. like direct ByteBuffer does with full-width reads/writes) -- basically prune out the Java code which breaks ints into the series of bytes, and cram in Unsafe.putInt() against backing array.
This is not about making the CAS updates, it is about making reads and writes appear indivisible. Seems to be a good thing even if unspec'ed.
-Aleksey.
- Previous message: java.nio.*Buffer read/write atomicity
- Next message: java.nio.*Buffer read/write atomicity
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]