(2.1.2.5)并发

来源:互联网 发布:淘宝助理怎么导出csv 编辑:程序博客网 时间:2024/06/05 10:07

  • 关键字

关键字

  • 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
原创粉丝点击