并发概念
来源:互联网 发布:淘宝国产高达禁卖 编辑:程序博客网 时间:2024/06/06 13:03
线程安全
当多个线程访问某个类时,不管运行时环境采用何种调度方法或者这些线程将如何交替运行,并且在主调代码中不需要任何额外的同步或协同,这个类都能表现出正确的行为,那么就称这个类为线程安全的。
原子性
一组语句作为一个不可分割的单元被执行。任何一个执行同步代码块的线程,都不可能看到有其他线程正在执行由同一个锁保护的同步代码块。
竞态条件
当某个计算的正确性取决于多个线程的交替执行时序时,那么就会发生竞态条件。最常见的竞态条件类型就是“先检查后执行”操作,通过一个可能失效的观测结果来决定下一步的动作。
重入
当某个线程请求一个有其他线程持有的锁时,发出请求的线程会阻塞。如果某个线程试图获得一个由它自己持有的锁,那么这个请求就会成功。
public class Widget{ public synchronized void doSomething(){ .... }}public class LoggingWi dget extends Widget{ public synchonized void doSomething(){ System.out.println("calling something") ; super.doSomething() ; }}
volatile变量
当把变量申明为volatile类型后,编译器与运行时都会注意到这个变量是共享的,因此不会将改变量上的操作与其他内存操作一起重排序。因此在读取volatile类型的变量时总会返回最新写入的值。
发布和逸出
发布一个对象的意思是指,是对象能够在当前作用域之外的代码中使用。例如,将一个指向该对象的引用保存到其他代码可以访问的地方,或者在某一个非私有的方法中返回该引用,或者将引用传递到其他类的方法中。 当某个不该被发布的对象被发布时,这种情况称为逸出
线程封闭
- Ad-hoc线程封闭: 维护线程封闭性的职责完全由程序实现来承担
- 栈封闭: 在栈封闭中,只能通过局部变量才能访问对象。
- ThreadLocal类: 这个值能使线程中的某个值与保存值的对象关联起来。
不变性
如果某个对象在被创建后其状态就不能被修改,那么这个对象就称为不可变对象。线程安全性是不可变对象的固有属性之一
当满足以下条件,对象才是不可变的
- 对象创建后其状态不能修改
- 对象所有域都是final类型
- 对象是正确创建的(在对象创建期间,this引用没有逸出)
0 0
- 并发概念
- 数据库并发中的概念
- 并行 并发 概念
- 集群(高并发)概念
- 并发概念总结
- 并发编程概念篇
- Java并发概念汇总
- Java并发概念汇总
- Java并发概念汇总
- Java并发一些概念
- java并发相关概念
- Java并发概念汇总
- 并发编程的概念
- 并发编程概念理解
- java-并发编程-概念
- 【Java并发】相关概念
- 并发编程(1)-概念
- Java并发编程:并发基础概念
- 1390.Binary Numbers
- [RK3288][Android6.0] 调试笔记 --- 同时支持两颗USB UVC Camera
- 关于Nginx负载均衡的详解教程
- mysql导入数据load data infile用法
- Career and feeling的走向分析
- 并发概念
- Android学习之如何集成极光短信验证
- java如何截取字符串最后一个" : "的位置
- C语言函数之二
- 面向对象,PDO基础知识,PDO预处理,SQL事务处理
- 27个iOS开源库,让你的开发坐上火箭吧
- 视觉研究的前世今生(中)王天珍(武汉理工大学)
- OpenCV学习笔记(一)之灰度级分层
- public <T> void method,此地泛型的意思