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

什么是“非阻塞”并发,它与普通并发有何不同?

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

什么是“非阻塞”并发,它与普通并发有何不同?

什么是非阻塞并发?它有什么不同。

正式:

在计算机科学中,非阻塞同步可确保争用共享资源的线程不会因互斥而无限期地推迟执行。如果可以保证系统范围内的进度,则非阻塞算法是无锁的;如果还保证每个线程的进度,则无需等待。(维基百科)

非正式的:非阻塞与阻塞相比,最有利的功能之一是,操作系统不必挂起/唤醒线程。这样的开销可能长达1毫秒到10毫秒,因此消除这种开销可以大大提高性能。在Java中,这还意味着您可以选择使用非公平锁定,这比公平锁定具有更多的系统吞吐量。

我听说这在Java中可用。是否有任何特殊情况我们应该使用此功能

是的,来自Java5。实际上,在Java中,您基本上应该尝试尽可能多地使用java.util.concurrent来满足您的需求(碰巧经常使用非阻塞并发,但是在大多数情况下您不必明确担心)。仅当您没有其他选择时,才应使用同步包装器(.synchronizedList()等)或手动

synchronize
关键字。这样一来,您大多数时候都会使用更可维护,性能更好的应用程序。

当存在大量争用时,非阻塞并发特别有利。当您需要阻塞时(公平锁定,事件驱动的东西,最大长度的队列等),您不能使用它,但是如果您不需要它,则非阻塞并发往往会在大多数情况下表现更好。

使用这些方法之一进行收集是否有区别/优势。权衡是什么

两者具有相同的行为(字节码应相等)。但我建议使用,

Collections.synchronized
因为它更短=较小的拧紧空间!



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

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

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