Random1 [Java] Random vs ThreadLocalRandom 자바에서 제공하는 랜덤 클래스에는 Random과 ThreadLocalRandom이 있다. 두 클래스의 작동 방식과 어떤 차이점이 있는지 비교해 보겠다. Random 난수 생성 방법 Random 내부의 코드를 살펴보면 seed를 어떻게 생성하는지 살펴볼 수 있다. public Random() { this(seedUniquifier() ^ System.nanoTime()); } Random은 사용자가 시드값을 인자로 넘기지 않는다면 nanotime, 즉 jvm의 고해상도 시간 측정 장치의 값을 기준으로 난수를 생성한다. seed 값을 변하지 않는 고정값으로 정한다면 동일한 패턴의 난수를 생성하기 때문에 계속 변하는 값인 시간을 seed로 사용한다. 멀티 스레드 환경에서의 문제점 Random은 하나의 인스턴스.. 2024. 2. 23. 이전 1 다음