(2.1.2.5)并发

关键字

  • CopyOnWriteArrayList 适用于写少读多的并发场景

  • ReadWriteLock适用于读多写少的并发场景,ReadWriteLock即为读写锁,他要求写与写之间互斥,读与写之间互斥,读与读之间可以并发执行。在读多写少的情况下可以提高效率

  • ConcurrentHashMap是同步的HashMap,读写都加锁

  • 只要在定义int类型的成员变量i的时候加上volatile关键字,也不能保证多线程并发执行i++这样的操作的时候就是线程安全的了

    • volatile只保证多线程操作的可见性,不保证原子性
    • 对于volatile修饰的变量,jvm虚拟机只是保证从主内存加载到线程工作内存的值是最新的
  • 同步

    • Critical Section 临界区(只能实现线程同步)
    • Event 事件 进程同步
    • Mutex互斥 进程同步
    • Semaphore 信号量 进程同步
  • Threadloacal

    • ThreadLocal的类声明:
      public class ThreadLocal
      可以看出ThreadLocal并没有继承自Thread,也没有实现Runnable接口。
    • ThreadLocal类为每一个线程都维护了自己独有的变量拷贝。每个线程都拥有了自己独立的一个变量。
      所以ThreadLocal重要作用并不在于多线程间的数据共享,而是数据的独立
    • 由于每个线程在访问该变量时,读取和修改的,都是自己独有的那一份变量拷贝,不会被其他线程访问,变量被彻底封闭在每个访问的线程中
    • ThreadLocal中定义了一个哈希表用于为每个线程都提供一个变量的副本:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值