Why is Java synchronized not working as expected?

前端 未结 3 1181
名媛妹妹
名媛妹妹 2021-01-24 06:38

I\'m trying to figure out how synchronized methods work. From my understanding I created two threads T1 and T2 that will call the same method <

3条回答
  •  一生所求
    2021-01-24 07:45

    Each A instance has its own B instance. The method addNew is an instance method of B. Therefore, the lock acquired implicitly during calls to addNew is the lock on the receiver B instance. Each thread is calling addNew on a different B, and therefore locking on different locks.

    If you want all B instances to use a common lock, create a single shared lock, and acquire it in the body of addNew.

提交回复
热议问题