小结java自带的跟锁相关的一些类
java.util.concurrent包下的一些跟锁相关的类列表
| 类 | 简介 | ||||||||||||||||||||||||||||||||||||||||||||
| locks.Lock接口 |
Lock 实现提供了比使用 synchronized 方法和语句可获得的更广泛的锁定操作。此实现允许更灵活的结构,可以具有差别很大的属性,可以支持多个相关的 Condition 对象。 所有已知实现类:ReentrantLock, ReentrantReadWriteLock.ReadLock, ReentrantReadWriteLock.WriteLock 方法包括:
|
||||||||||||||||||||||||||||||||||||||||||||
| locks.ReentrantLock类 |
public class ReentrantLock extends Object implements Lock, Serializable 一个可重入的互斥锁 可以实现公平锁,默认为非公平锁。 构造函数:
常用方法: Lock接口上定义的那些方法 + 下面表中的查询方法
|
||||||||||||||||||||||||||||||||||||||||||||
| locks.ReadWriteLock接口 |
ReadWriteLock 维护了一对相关的 所有已知实现类:locks.ReentrantReadWriteLock
|
||||||||||||||||||||||||||||||||||||||||||||
|
locks. ReentrantReadWriteLock 类 |
public class ReentrantReadWriteLock extends Object implements ReadWriteLock, Serializable 该类有如下几个特点: 1、默认为非公平锁模式,可以调用有参的构造函数构建公平锁。 2、可重入: 此锁允许 reader 和 writer 按照 ReentrantLock 的样式重新获取读取锁或写入锁。在写入线程保持的所有写入锁都已经释放后,才允许重入 reader 使用它们。 3、锁降级:允许从写入锁降级为读取锁,其实现方式是:先获取写入锁,然后获取读取锁,最后释放写入锁。但是,从读取锁升级到写入锁是不可能的。 示例: class CachedData {
4、锁获取可中断:读取锁和写入锁都支持锁获取期间的中断。 5、写锁Condition支持,但读锁不支持Condition。 注意事项:此锁最多支持 65535 个递归写入锁和 65535 个读取锁。试图超出这些限制将导致锁方法抛出 Error。 构造函数:
嵌套类:
主要的方法有:
|
||||||||||||||||||||||||||||||||||||||||||||
| CountDownLatch类 |
一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。该类为一次性的锁,不可重用。 构造函数: 方法包括:
|
||||||||||||||||||||||||||||||||||||||||||||
| CyclicBarrier类 |
一个同步辅助类,它允许一组线程互相等待(调用await),当等待的线程数达到构造函数中int parties(屏障)的数量时才线程组里的线程才能继续往下执行/退出,同时它有一个带Runnable入参的构造函数允许在线程组突破这个屏障后(但在释放所有线程之前)执行相关的Runnable的代码(也就是最后一个达成突破屏障的那个线程达到后)。该类可重用。 通俗点讲:在hadoop等map/reduce分布式计算框架中里有用到这种思想,将一个任务拆成多个子任务,然后最后一子任务完成后整个任务才能继续往下执行(汇总各个子任务的结果)。 构造函数:
方法列表:
|
||||||||||||||||||||||||||||||||||||||||||||
| Semaphore类 |
一个计数信号量。从概念上讲,信号量维护了一个许可集。如有必要,在许可可用前会阻塞每一个 通俗的讲就是:一个令牌池,通过acquire()方法获取一个令牌,如果没获取到就等待,获取到了就继续执行,执行完毕通常需要调用release()方法归还令牌,当归还的时候回唤醒正在等待获取令牌的线程来争取这个令牌。 该类默认为非公平锁,但有公平锁的构造函数可选。 构造函数:
方法列表:
|
小结java自带的跟锁相关的一些类的更多相关文章
- JAVA实现带图片的列表——JList
JList:显示对象列表并且允许用户选择一个或多个项的组件. JList的构造方法: 1.根据数组创建列表: JList(Object[] listData) 构造一个 JList,使其显示指定数组中 ...
- java自带工具-jps、jinfo、jstack、jstat、jmap
掌握java自带的这些监控工具,有助与我们很好的分析问题和jvm性能调优秀.收集了些网上整理很好的文章. Java监控工具.调优.调试辅助函数 Java自带的GUI性能监控工具Jconsole以及Ji ...
- Spark的Straggler深入学习(1):如何在本地图形监控远程Spark的GC情况——使用java自带的jvisualvm
一.本文的目的 Straggler是目前研究的热点,Spark中也存在Straggler的问题.GC问题是总所周知的导致Straggler的重要因素之一,为了了解GC导致的Straggle ...
- java自带BASE64工具进行图片和字符串转换
java自带BASE64工具进行图片和字符串转换 import java.io.File; import java.io.FileInputStream; import java.io.FileOut ...
- Java自带的keytool命令
使用Java自带的keytool命令,在命令行生成. 1.生成服务器端私钥kserver.keystore文件 keytool -genkey -alias serverkey -validity 1 ...
- java发送带附件的邮件
/** * java发送带附件的邮件 * 周枫 * 2013.8.10 */ package com.dsideal.Util; import javax.mail.*; import javax.m ...
- [转] 引用 Java自带的线程池ThreadPoolExecutor详细介绍说明和实例应用
PS: Spring ThreadPoolTaskExecutor vs Java Executorservice cachedthreadpool 引用 [轰隆隆] 的 Java自带的线程池Thre ...
- Java 自带MD5加密 Demo
package demo; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; pub ...
- java自带的监控工具VisualVM(二)远程监控
ps:尝试了网上的几个网友提供的方法,始终不得其法,汇总后,终于尝试成功!将一些需要注意的细节也记录下来以后备用! 我们经常需要对我们的开发的软件做各种测试, 软件对系统资源的使用情况更是不可少, 目 ...
随机推荐
- PreApplicationStartMethodAttribute程序启动扩展
一.PreApplicationStartMethodAttribute 类简介 应用程序启动时提供的扩展的支持. 命名空间: System.Web程序集: System.Web(位于 Syst ...
- H2:开源内存数据库引擎
本资源由 伯乐在线 - 刘立华 整理 H2是一个开源的内存数据库.Java编写.快速.小巧(1.5MB jar包)还提供了Web控制台管理数据库内容. 主要功能 非常快速的数据库引擎. 开源. Jav ...
- CentOS Virtual Machine 设置SSH主机登录
查看Centos7的IP 我们输入ip查询命名 ip addr 也可以输入 ifconfig查看ip,但此命令会出现3个条目,centos的ip地址是ens33条目中的inet值. 发现 ens33 ...
- 图解 MongoDB 地理位置索引的实现原理(转)
原文链接:图解 MongoDB 地理位置索引的实现原理 地理位置索引支持是MongoDB的一大亮点,这也是全球最流行的LBS服务foursquare 选择MongoDB的原因之一.我们知道,通常的数据 ...
- 用非递归、不用栈的方法,实现原位(in-place)的快速排序
大体思路是修改Partition方法将原本枢数的调整放到方法结束后去做.这样因为数组右侧第一个大于当前枢数的位置就应该是未划分的子数组的边界.然后继续进行Partition调整.这种写法照比递归的写法 ...
- ie7 z-index 失效问题
解决办法: 父级元素加上position:relative;并设置z-index. 父级元素的z-index优先,其中包含的元素的z-index是相对于父级元素的index. <div styl ...
- 什么是JSP (转)
http://blog.csdn.net/javaloveiphone/article/details/7937170 一.什么是JSP(JavaServer Pages),原来是没有jsp的,只有s ...
- capwap学习笔记——初识capwap(一)
2 初识CAPWAP 2.1 CAPWAP简介 说了半天CAPWAP,连全称都还没说,汗-- CAPWAP--Control And Provisioning of Wireless Access P ...
- 测试数据——有效范围(2)
测试数据库搞好,学习了一下逾期率的官方定义: • 对于某支标,如果某一期没有正常还款,则悲观逾期率=所有未还本金/借款本金: • 对于一批标,悲观逾期率=当前逾期标的所有未还本金/借款本金: • 以3 ...
- ASP入门(十六)-ASP开发的规范
毋容置疑,在开发中遵守一套规范,将会有利于提高代码的可读性,较低后期维护成本. 文件存放目录规范 js 目录下存放着页面所使用的 JavaScript 脚本文件,因为我们可能用到第三方提供的免费的 J ...