If T1 would run first, the content of the ConcurrentHashMap is (1,true), and therefore there is only 1 value.
So it will print 'true' and not 'true,true' because T2 has not run yet. On Mon, Sep 12, 2022 at 3:31 PM r r <[email protected]> wrote: > Hello, > let's look for the following piece of code: > > c = new ConcurrentHashMap<Integer, Boolean>(); > T1: > c.put(1, true); > for (Boolean b : c.values()) { > print(b); > } > T2: > c.put(2, true); > for (Boolean b : c.values()) { > print(b); > } > > Is it guaranteed by JMM that any thread (T1 or T2) prints true, true? > To put it in another way, is it guaranteed that T1 or T2 observes both > c.put? > > If yes / no, why? > Thanks in advance for your time. > > -- > You received this message because you are subscribed to the Google Groups > "mechanical-sympathy" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web, visit > https://groups.google.com/d/msgid/mechanical-sympathy/0945e8e3-1070-4166-b269-1c4e6c49da3en%40googlegroups.com > <https://groups.google.com/d/msgid/mechanical-sympathy/0945e8e3-1070-4166-b269-1c4e6c49da3en%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "mechanical-sympathy" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web, visit https://groups.google.com/d/msgid/mechanical-sympathy/CAGuAWdAzirHPwyj%2B55%3D%2BSvkcLbKg80wzgspu8CDOGHOMD0Zchg%40mail.gmail.com.
