栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

除了互斥锁或垃圾回收以外,还有哪些机制可以减慢我的多线程Java程序?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

除了互斥锁或垃圾回收以外,还有哪些机制可以减慢我的多线程Java程序?

后来的许多实验中,我发现JVM没什么作用,但我也发现了JDump的强大功能。64个线程中的50个位于以下行。

java.lang.Thread.State: RUNNABLE    at java.util.Random.next(Random.java:189)    at java.util.Random.nextInt(Random.java:239)    at sun.misc.Hashing.randomHashSeed(Hashing.java:254)    at java.util.HashMap.<init>(HashMap.java:255)    at java.util.HashMap.<init>(HashMap.java:297)

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.compareAndSet(oldseed, nextseed));    return (int)(nextseed >>> (48 - bits)); }

最有趣的是,这并不是一个明显的锁,因此我用来发现互斥锁的工具无法正常工作。

因此,似乎任何Java哈希图的创建都会导致应用程序停止可伸缩性(我夸大了但不多)。我的应用程序确实大量使用了哈希图,所以我想我要么重写哈希图,要么重写应用程序。

我在提出一个单独的问题,以查看如何处理。

谢谢你的帮助



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/404548.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号