什么更难,同步2个线程或1000个线程?

nan*_*nda 11 java multithreading synchronization

在Paul Tyma的演讲中,我找到了一个面试问题:

什么更难,同步2个线程或同步1000个线程?

从我的角度来看,当然同步1000个线程更难,但我当然不能想到"理所当然"的理由.但由于这是面试问题,可能是我错了(面试问题必须棘手,不是吗?).

Mic*_*rdt 38

你可以认为正确同步2个线程的情况实际上比为1000执行它更难,因为如果你有竞争条件,它通常会很快显示1000个线程,但不是只有2个.

但另一方面,同步1000个线程而不会遇到锁争用问题要比只有2个时更难.

真正的答案是"以各种方式同步线程,周期."

  • +1"如果你有一个竞争条件,它通常会很快显示1000个线程,但不是只有2个." 对我来说这是关键点 - 但也许不是最明显的答案. (3认同)

Bor*_*lid 14

同步一千个线程就像同步两个线程一样简单:只需锁定对所有重要数据的访问.

现在,同步一千个具有良好性能的线程更加困难.如果我问这个问题,我会寻找答案,提到"雷鸣般的群体问题","锁定争用","锁定实现可扩展性","避免螺旋锁"等.