多线程 同步笔记
来源:互联网 发布:优化好的单机游戏 编辑:程序博客网 时间:2024/06/07 09:46
对java同步控制方法的记录
使用synchronized
重入锁reentrantlock
1.synchronized需要加在指定对象上,静态方法,或者指定对象的实例方法,关键把锁加在同一个对象上
2.reentrantlock中提供的几种锁,reentrantlock可以反复进入
lock unlock显示的加锁和释放锁
lockinterruptibly 可以对中断进行相应响应
tryLock方法:
public boolean tryLock(long timeout, TimeUnit unit) throws InterruptedException { return sync.tryAcquireNanos(1, unit.toNanos(timeout)); }
申请锁的超时 返回falsetryLock()不带参数直接使用,当前线程获取锁,锁没被其他线程占用,获取成功返回true,否则但会false
公平锁:维护一个队列,来获取锁,reentrantlock可以设置公平锁,但是一般性能低下
public ReentrantLock(boolean fair) { sync = fair ? new FairSync() : new NonfairSync(); }
Condition对象的await()和signal()和作用于Objct的wait()和notify()作用相似,wait()和notify和synchronized关键字合作,await()和signal()和condition合作
Semaphore信号量,无论内部锁synchronized还是重入锁reentrantlock都是一次允许一个线程访问一个资源
Semaphore允许一次多个线程访问一个资源
ReentrantReadWriteLock读写锁 读锁readLock() 写锁writeLock(),读写锁允许多个线程i同时读,读操作远大于写操作时,可以用来有效的提升性能
读写读非阻塞阻塞写阻塞阻塞
阅读全文
0 0
- 多线程 同步笔记
- Android多线程与同步- 笔记
- Java笔记 - 多线程-同步函数
- 《黑马程序员》java笔记->多线程,同步锁
- 黑马程序员-多线程同步案例笔记
- java 多线程学习笔记之 线程同步
- 【笔记】android 多线程同步实现方法
- MFC(学习笔记) - 多线程同步
- 2016.6.21笔记(1)-多线程同步
- [Linux]多线程同步之pthread_cond_wait()学习笔记
- [Linux]多线程同步之sem_wait()学习笔记
- 用同步对象编程(多线程编程笔记)
- 多线程同步问题-练习题1-笔记整理
- 多线程同步问题-练习题2-笔记整理
- 多线程同步问题-练习题3-笔记整理
- 多线程学习笔记3:线程同步
- 多线程同步
- 多线程同步
- 高并发热点缓存数据可能出现问题及解决方案
- Ubuntu下安装Qt creator 5
- 安卓onKeyDown事件
- kettle从零开始系列
- RTP/RTCP协议族分析
- 多线程 同步笔记
- Linux添加信任关系
- win10 Python 3.6 安装 pycrypto
- 【Scikit-Learn 中文文档】流形学习
- 目标检测:Improving Object Detection With One Line of Code
- js与JQuery的某些方法
- spring+springmvc+mybatis+jsp练习
- Mybatis 单例获取SqlSessionFactory
- SPARQL(一)