zoukankan      html  css  js  c++  java
  • 线程锁的机制Lock

    java.util.concurrent.locks

    接口Lock

    publci interface Lock

      Lock 实现提供了比使用synchronized方法和语句可获得的更加广泛的锁定操作,

    此实现允许更灵活的结构,可以具有差别很大的属性,可以、支持多个相关的Condition对象。

       锁是多个线程对共享资源的访问工具,通常,所提供了对共享资源的独占访问。

    一次只可以有一个线程访问共享资源,不过某些锁提供对共资源的并发访问,如:

    ReadWriterLock的读取锁。

    synchronized 方法或语句的使用提供了对与每个对象相关的隐式监视器锁的访问

    但却强制所有锁获取和释放均要出现在一个块结构中:当获取了多个锁时,

    它们必须以相反的顺序释放,且必须在与所有锁被获取时相同的词法范围内释放所有锁。

    //使用ThreadLocal类来管理共享资源

    public class  ThreadLcoal<T> extends Object 

     该类提供了线程局部(thread-local)变量。这些变量不同与普通变量对应的物

    因为访问该个变量(通过其get或set方法)的每个线程都有自己的局部变量,

    他独立与变量初始化副本。ThreadLocal实例通常是类中的private static 字段

    他们希望将状态与某一线程(例如:用户ID,事物ID)相关联

    相当于每个线程访问这个县城局部变量,就自动为每个线程复制一份独立的副本,每个线程同过修改这个副本,

    而不对其他线程访问这个局部线程变量的影响。(各自维护自己的局部线程变量副本,

    就像本例中每个客户都想账户存100元,而账户初始100元,结果账户余额都是200元,说明线程只维护各自的副本)(总余额应为300元)

    结果:

  • 相关阅读:
    css实现右侧三角
    css 应用 给头像添加标签
    css中伪选择器使用
    服务器上的项目不能对外发送请求
    视频只能播放一两帧,PDF文件60k以上加载失败的问题,静态访问也一样
    spring集成mybatis 打印sql语句
    新浪股票代码
    linux 设置mysql密码
    linux启动mysql服务报错
    配置eclipseJVM虚拟机内存大小
  • 原文地址:https://www.cnblogs.com/chengbao/p/4851103.html
Copyright © 2011-2022 走看看