zoukankan      html  css  js  c++  java
  • 多线程学习

    特性:

      1.共享性

      2.互斥性(同一时间,对一份资源,只允许一个线程对其进行写操作)

      3.原子性(数据的操作是独立的,不可分割的整体。常见的方式加锁

      4.可见性

      5.有序性(为提高性能,编译器和处理器可能会对指令做重排序)

      6.重排序(对于数据没有依赖的语句,处理器为了优化性能,可能会重新排序,这对单线程没有影响,但是对多线程可能有影响)

    synchronized:

      1.作用于一般的方法上,锁对象

      2.作用于静态方法的上,锁类

      3.作用于方法块上,根据锁的内容不同而不同

        方法块的好处是,只锁同步块,更精确

    Lock和ReadWriteLock

    lock与synchronized对比:

     1.并发不激烈时,性能相差不到,推荐使用synchronized,高并发时,synchronized会极具下降,推荐使用lock

     2.synchronized不需要手动释放锁,而lock需要

     3.lock可以使用tryLock等方法,更加灵活

     4.lock若想实现wait,notify方法,需要借助Condition实现

  • 相关阅读:
    Dybala我错了%Dybala
    2019.7.22考试反思
    2019.7.19考试反思
    2019.7.18 考试反思
    数论总结之 乘法逆元
    数论总结之 卢卡斯定理
    游记 Day2
    【BSGS】Discrete Logging
    【卡特兰数】树屋阶梯
    【链接】 一篇很好的有关prufer序列的博文
  • 原文地址:https://www.cnblogs.com/jaxlove-it/p/9802744.html
Copyright © 2011-2022 走看看