在Java 7及以后的版本中,引入了一個(gè)新的線(xiàn)程安全的偽隨機(jī)數(shù)生成器ThreadLocalRandom,它是java.util.Random類(lèi)的變體,通過(guò)ThreadLocal機(jī)制保證了線(xiàn)程安全性,可以用于多線(xiàn)程環(huán)境下的隨機(jī)數(shù)生成。
ThreadLocalRandom類(lèi)中定義了許多靜態(tài)方法,可以用來(lái)生成不同類(lèi)型的隨機(jī)數(shù),例如:
nextInt(int n):生成一個(gè)0(含)到指定數(shù)值n(不含)之間的隨機(jī)整數(shù)。
nextLong(long n):生成一個(gè)0(含)到指定數(shù)值n(不含)之間的隨機(jī)長(zhǎng)整數(shù)。
nextDouble():生成一個(gè)0(含)到1.0(不含)之間的隨機(jī)雙精度浮點(diǎn)數(shù)。
nextBoolean():生成一個(gè)隨機(jī)的布爾值。
ThreadLocalRandom類(lèi)的使用示例:

需要注意的是,ThreadLocalRandom類(lèi)的使用應(yīng)該盡量避免在單線(xiàn)程環(huán)境下使用,因?yàn)樗萰ava.util.Random類(lèi)要慢得多,只有在多線(xiàn)程環(huán)境下才能發(fā)揮其優(yōu)勢(shì)。此外,在使用ThreadLocalRandom類(lèi)時(shí),也需要根據(jù)實(shí)際需要選擇合適的隨機(jī)數(shù)生成方法。


京公網(wǎng)安備 11010802030320號(hào)