并发编程学习小记
来源:互联网 发布:seo白帽与黑帽 编辑:程序博客网 时间:2024/06/04 18:35
JAVA并发学习小记
临界区:产生竞态条件的代码区域。
阻塞:同步块,wait()均会造成线程阻塞。
悲观锁:使用阻塞的方式防止其他线程写入正在被读或在写的数据。试图修改该数据的线程将阻塞等待至正在写入的线程的写入操作完成。
乐观锁:不管如何,先尝试修改数据,如果在写入时发现数据已经被改变则返回操作失败,否则直接写入修改的数据。与悲观锁不同在于并没有阻塞线程。
饥饿:同步块、notify()、notifyAll()是随机唤醒阻塞线程的,RP不好有些线程将一直无法唤醒,造成线程饥饿。
公平锁:仅使用同步块与wait(),notify(),notifyAll()实现的锁在释放锁时会随机唤醒正在阻塞等待的线程,有可能会造成饥饿现象。公平锁会给与所有等待线程同等的机会(并非随机,通常按一定顺序)唤醒并继续获得锁。
重入:继续获得已经持有的锁称为重入。
可重入锁:如果当前线程已经持有该锁,则可以继续再次持有该锁。
不可重入锁:锁只能被持有一次,不能被重复持有。
死锁:多个线程互相等待彼此来释放锁,但同时又持有其他线程所需要的锁。
活锁:非阻塞算法可能产生的情况,多个线程请求执行更改均失败并重复请求。
0 0
- 并发编程学习小记
- c++并发编程小记1
- Java编程思想 学习小记
- 并发编程学习总结
- 并发编程学习总结
- 并发编程学习总结
- Java并发编程学习
- 并发编程学习记录
- 并发编程学习
- 并发编程学习链接
- 并发编程学习
- java并发编程的一些小记录之interrupt
- java并发编程实践学习
- Java并发编程学习2
- Java多线程并发编程学习
- scala学习十一 并发编程
- java7并发编程学习笔记
- java的并发编程学习
- RHEL6.5,制作本地 YUM 源
- 自建数组类的初始化错误分析(1)
- QT之QSetting类
- mp4v2
- ZOJ 3261 /哈理工OJ 1913 Connection in War(逆向并查集)(STL应用)
- 并发编程学习小记
- Oracle11g下ORA-01417的解决办法
- 堆的STL库的应用
- 单例设计模式(iOS版)
- javabean 简介
- RHEL安装 C++ 编译器
- Opencv视频转化为图片
- 从sd卡中显示一个图片 Android
- 文件上传