线程安全:如果一个对象可以安全的被多个线程同时使用,那它就是线程安全的。
一、Java中的线程安全
1.不可变
不可变的对象一定是线程安全的。String、枚举类型、java.lang.Number的部分子类如Long和Double等数值包装类型,BigInteger和BigDecimal等大数据类型。
AtomicInteger和AtomicLong并非是不可变的。
2.绝对线程安全
如Vector类是线程安全的,但是如果多个线程同时对Vector数据进行增加或者减少,那么Vector线程不是绝对线程安全的。
3.相对线程安全
单独操作是线程安全的,连续操作需考虑同步问题。
4. 线程兼容
5. 线程独立
二、线程安全的实现方法
1. 互斥同步
同步是指在多个线程并发访问共享数据时,保证共享数据在同一个时刻只被一个(或者一些)线程使用。
扫描二维码关注公众号,回复:
1733356 查看本文章
互斥是实现同步的一种手段,临界区(Critical Section)、互斥量(Mutex)和信号量(Semaphore)都是互斥实现方式。
互斥是因,同步是果;互斥是方法,同步是目的。