【Java】线程安全学习
来源:互联网 发布:js 获取get url参数 编辑:程序博客网 时间:2024/05/22 11:24
一项任务在执行的过程中会不断的切换状态,对象的属性有可能会被更改或者变成脏数据。为了让程序高效运行,并且保证并发的正确性,依次来分析线程的安全和引入锁机制。 什么是线程安全:从网上找了一段话,多个线程访问这个对象,不用考虑这些线程在多个任务情况下的调度和交替运行,调用这个对象能得到正确的结果。
按照线程的安全程度划分可以将java语言安全程度5个等级:
不可变:final修饰,String修饰,Integer修饰,Long Double修饰,BigInteger修饰 BigDecimal(涉及跟金钱相关的属性要用这个,比较精确,对应数据库中的decimal类型)修饰。
绝对线程安全:不管运行时环境如何,都能得到正确结果。这个比较严格。不变类都是绝对线程安全的。
相对线程安全:这个就是我们经常说的线程安全。调用者都不需要考虑线程同步,大多数情况下,都能够正常运行。jdk里面大多数类都是相对安全的。最常见的例子是java里面Vector类。
线程兼容:在多线程环境下,调用者需要考虑同步问题。如果调用者通过额外的同步机制,可以保证线程的安全性。比如arrayList HashMap 都可以通过工具类来达到线程安全。
线程对立:也就是不安全情况。
线程安全实现方法:
互斥同步:Lock synchronized
非阻塞同步:类似AtomicInteger的原子自增算法
无同步方案:共享线程参数方案,或者类似FutureTask那种模式
阅读全文
0 0
- 【Java】线程安全学习
- java线程学习(1)—线程安全
- Java学习 线程安全与线程同步
- Java线程学习(一):线程安全与不安全
- java学习笔记之多线程(2)之线程安全
- java线程学习——线程安全(同步)
- Java线程学习笔记之线程安全与不安全
- Java线程安全(深入理解Java虚拟机学习笔记)
- Java学习之——线程非安全单利模式到线程安全单利模式
- Java线程安全和非线程安全
- Java线程安全和非线程安全
- Java线程安全和非线程安全
- Java线程安全和非线程安全
- Java线程安全和非线程安全
- Java线程安全和非线程安全
- Java线程安全和非线程安全
- Java线程安全和非线程安全
- Java线程安全和非线程安全
- 设计模式-前摄器模式(Proactor)
- ios+Android老程序员的下场
- VLAN内的报文转发
- 数据结构--串 KMP匹配
- IDS验证(正整数并且是逗号分隔)
- 【Java】线程安全学习
- 探探左滑右滑, OKHttp请求网络数据实现
- 在web.xml中,<context-param>标签的作用是什么?
- 在multimap和multiset中查找元素
- le for current thread
- c语言小程序之三子棋
- Hive初级使用
- 笔记
- Django学习7:模型(models)