采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师, 我想问下, ThreadLocal使用场景一中提到: SimpleDateFormat, Random等在多线程访问时是不安全的, 有点不理解. 我理解的是Random中方法是生成随机数, 那多个线程调用, 怎么会不安全呢, 不是一个线程拿到一个随机数么, 不同线程也没啥影响啊.
恩,如果从随机的角度考虑,那么确实一个线程拿到一个随机数,不同线程也没啥影响的。
另外,在random这里使用ThreadLocal,主要是为了解决效率问题,如果多个线程需要等待一个共享的随机数生成器java..util.Random 类, 这会很低效。
可以使用ThreadLocal 辅助类为各个线程提供一个单独的生成器, 不过Java SE 7 还另外提供了一个便利类。只需要做以下调用:
int random = ThreadLocalRandom.curren().nextInt(upperBound) :
ThreadLocalRandom.current() 调用会返回特定于当前线程的Random 类实例。
可以参考:https://stackoverflow.com/questions/5819638/is-random-class-thread-safe
非常感谢!
登录后可查看更多问答,登录/注册
JUC全方位讲解,构建并发工具类知识体系
983 11
1.4k 10
1.0k 10
994 10
1.4k 9