gpt4 book ai didi

java - ThreadLocalRandom 如何减少争用?

转载 作者:行者123 更新时间:2023-11-29 05:36:05 26 4
gpt4 key购买 nike

正在查看 Java 7 的新功能并发现添加了这个新类:

For concurrent access, using ThreadLocalRandom instead of Math.random() results in less contention and, ultimately, better performance.

正在研究如何实现这一点,从而减少争用并提高性能。

最佳答案

实际上,两者的区别在于同步。 Math#random() 可能会被多个线程同时调用,因此必须进行同步,而 ThreadLocalRandom 是线程绑定(bind)的 Random 的非同步版本这意味着每个线程都有自己的(更快的)分配。

如果仔细查看实现,您会发现 Math#random() 使用 java.util.Random 的单个实例来生成随机数数字,其中 ThreadLocalRandom 为每个线程分配一个实例,从而消除了这种意义上的争用。

ThreadLocalRandom 实现并发,其中 Math#random() 实现同步

关于java - ThreadLocalRandom 如何减少争用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19501465/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com