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元)

    结果:

  • 相关阅读:
    UVA 10564 Paths through the Hourglass DP
    HDU 3397 Sequence operation 线段树 成段更新 区间合并
    HDU 3308 LCIS 线段树 单点更新+区间合并
    POJ 3667 Hotel 线段树 区间合并
    UVALive 3942 Remember the Word Tire+DP
    POJ 1703 Find them, Catch them
    UVA 1366 Martian Mining DP
    UVA 1456 Cellular Network 贪心+DP
    UVA 11573 Ocean Currents
    【ACM】hdu_zs1_1003_放大的X _201307271557
  • 原文地址:https://www.cnblogs.com/chengbao/p/4851103.html
Copyright © 2011-2022 走看看