java destroyforcibly_被人遗忘的Java8的八个功能
在Java 8中有几个功能没有人会谈及它们,也许还在一直沿用之前的吧,推荐学习java基础与加强教程了解,下面介绍八个在Java 8中没有人谈及的功能:
时间戳锁
一直以来,多线程代码是服务器开发人员的毒药。Java的核心库不断加入各种复杂的用法来减少访问共享资源时的线程等待时间。其中之一就是经典的读写锁(ReadWriteLock),
它让你把代码分成两部分:需要互斥的写操作和不需要互斥的读操作。
表面上看起来很不错。问题是读写锁有可能是极慢的(最多10倍),这已经和它的初衷相悖了。Java
8引入了一种新的读写锁——叫做时间戳锁。好消息是这个家伙真的非常快。坏消息是它使用起来更复杂,有更多的状态需要处理。并且它是不可重入的,这意味着
一个线程有可能跟自己死锁。
时间戳锁有一种“乐观”模式,在这种模式下每次加锁操作都会返回一个时间戳作为某种权限凭证;每次解锁操作都需要提供它对应的时间戳。如果一个线程
在请求一个写操作锁的时候,这个锁碰巧已经被一个读操作持有,那么这个读操作的解锁将会失效(因为时间戳已经失效)。这个时候应用程序需要从头再来,也许
要使用悲观模式的锁(时间戳锁也有实现)。你需要自己搞定这一切,并且一个时间戳只能解锁它对应的锁——这一点必须非常小心。
下面我们来看一下这种锁的实例——

并发加法器
Java 8另一个出色的功能是并发“加法器”,
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
