ThreadLocalRandom의 설계의도와 스레드의 관계
ThreadLocalRandom 클래스의 설계 의도는 무엇일까?? 기존의 Random 클래스는 멀티 스레드 환경에서 동시에 요청하는 스레드가 많을 경우 스레들간의 경합이 발생되어, 성능저하를 발생시킨다. 이를 개선하기 위해서 ThreadLocalRandom 클래스가 등장했다. Random 클래스가 왜 경합이 발생하는 데?? 다음은 Random 클래스의 핵심 메서드인 next() 메서드이다. protected int next(int bits) { long oldseed, nextseed; AtomicLong seed = this.seed; do { oldseed = seed.get(); nextseed = (oldseed * multiplier + addend) & mask; } while (!seed.c..
2023.11.01