MCPcopy Create free account

hub / github.com/JCrete/jcrete2017 / functions

Functions12 in github.com/JCrete/jcrete2017

MethodatomicField
<b>YES</b> Data visibility of atomic is guaranteed. The field doesn't need to be final nor volatile since it was created before the thread was started
Day1/Session2/DataVisibility/src/test/java/pro/tremblay/concexplained/lock/DataVisibilityTest.java:70
MethodatomicInitAfterField
<b>NO</b> Field initialization occurs in the thread and so might not be visible by the main thread. So the main thread might never go out of its loop.
Day1/Session2/DataVisibility/src/test/java/pro/tremblay/concexplained/lock/DataVisibilityTest.java:84
MethodlatchField
<b>YES</b> In fact, all JUL are providing the necessary barriers to get the correct visibility.
Day1/Session2/DataVisibility/src/test/java/pro/tremblay/concexplained/lock/DataVisibilityTest.java:188
MethodlockField
<b>YES</b> Locking provides the same data visibility as synchronizing.
Day1/Session2/DataVisibility/src/test/java/pro/tremblay/concexplained/lock/DataVisibilityTest.java:162
MethodmutexField
<b>YES</b> Finally, I slightly more complicated way using a volatile field ({@link #stopVolatileField}). Writing to the volatile field causes a happen
Day1/Session2/DataVisibility/src/test/java/pro/tremblay/concexplained/lock/DataVisibilityTest.java:211
MethodnormalField
<b>NO</b> Data visibility to another thread is not guaranteed by a normal field. The child thread might never see {@link #stopNormalField} value chang
Day1/Session2/DataVisibility/src/test/java/pro/tremblay/concexplained/lock/DataVisibilityTest.java:32
Methodrun
()
Day1/Session2/DataVisibility/src/test/java/pro/tremblay/concexplained/lock/DataVisibilityTest.java:142
MethodsynchronizedField
<b>YES</b> Two threads synchronizing on the same mutex are seeing the same thing inside the synchronized section.
Day1/Session2/DataVisibility/src/test/java/pro/tremblay/concexplained/lock/DataVisibilityTest.java:99
MethodsynchronizedInnerClassField
<b>YES</b> Watch out. A lambda has not the same {@code this} as an inner class.
Day1/Session2/DataVisibility/src/test/java/pro/tremblay/concexplained/lock/DataVisibilityTest.java:139
MethodsynchronizedOnDifferentMutexField
<b>NO</b> If the threads are not on the same mutex, there is no guarantee.
Day1/Session2/DataVisibility/src/test/java/pro/tremblay/concexplained/lock/DataVisibilityTest.java:119
MethodvolatileArrayField
<b>NO</b> Data visibility of array elements is not guaranteed. Elements of a volatile array are not volatile.
Day1/Session2/DataVisibility/src/test/java/pro/tremblay/concexplained/lock/DataVisibilityTest.java:57
MethodvolatileField
<b>YES</b> Volatile ensure data visibility. When a volatile field is changed, all other threads are seeing the value right away.
Day1/Session2/DataVisibility/src/test/java/pro/tremblay/concexplained/lock/DataVisibilityTest.java:45