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

结果:

线程锁的机制Lock的更多相关文章

  1. Java线程锁一个简单Lock

    /** * @author * * Lock 是java.util.concurrent.locks下提供的java线程锁,作用跟synchronized类似, * 单是比它更加面向对象,两个线程执行 ...

  2. iOS 线程锁同步机制

    转载自 http://yulingtianxia.com/blog/2015/11/01/More-than-you-want-to-know-about-synchronized/ 如果你已经使用 ...

  3. 【Java并发系列04】线程锁synchronized和Lock和volatile和Condition

    img { border: solid 1px } 一.前言 多线程怎么防止竞争资源,即防止对同一资源进行并发操作,那就是使用加锁机制.这是Java并发编程中必须要理解的一个知识点.其实使用起来还是比 ...

  4. JAVA线程锁-读写锁

    JAVA线程锁,除Lock的传统锁,又有两种特殊锁,叫读写锁ReadWriteLock 其中多个读锁不互斥,读锁和写锁互斥,写锁和写锁互斥 例子: /** * java线程锁分为读写锁 ReadWri ...

  5. Linux同步机制(一) - 线程锁

    1 互斥锁 在线程实际运行过程中,我们经常需要多个线程保持同步. 这时可以用互斥锁来完成任务.互斥锁的使用过程中,主要有 pthread_mutex_init pthread_mutex_destor ...

  6. [转载] java并发编程:Lock(线程锁)

    作者:海子 原文链接: http://www.cnblogs.com/dolphin0520/p/3923167.html 出处:http://www.cnblogs.com/dolphin0520/ ...

  7. JDK5.0 特性-线程锁Lock

    来自:http://www.cnblogs.com/taven/archive/2011/12/17/2291470.html import java.util.concurrent.Executor ...

  8. 并发库应用之四 & 线程锁Lock应用

    Java5的线程并发库中,提供了相应的线程锁接口Lock来帮助我们同步处理.Lock比传统线程模型中的synchronized更加面向对象,锁本身也是一个对象,两个线程执行的代码要实现同步互斥效果,就 ...

  9. JUC——线程同步锁(锁处理机制简介)

    锁处理机制简介 juc的开发框架解决的核心问题是并发访问和数据安全操作问题,当进行并发访问的时候如果对于锁的控制不当,就会造成死锁这样的阻塞问题. 为了解决这样的缺陷,juc里面重新针对于锁的概念进行 ...

随机推荐

  1. Nova和Heat中的servergroup

    如今nova能够通过命令创建一个server group,在server group中的vm能够指定一些policy. 这些policy包含affinity和anti-affinity.affinit ...

  2. Android平台Overlay机制【转】

    本文转载自:http://blog.csdn.net/wh_19910525/article/details/39254815 Android overlay 机制允许在不修改packages中apk ...

  3. Node.js:目录

    ylbtech-Node.js:目录 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部 1. http://www.runoob.com/nodejs/nodejs ...

  4. linux sysbench (一): CPU性能测试详解

    网上sysbench教材众多,但没有一篇中文教材对cpu测试参数和结果进行详解. 本文旨在能够让读者对sysbench的cpu有一定了解. 小慢哥的原创文章,欢迎转载 1.sysbench基础知识 s ...

  5. cookie,session,viewstate

    viewstate的原理是隐藏域. protected void Page_Load(object sender, EventArgs e) { ViewState["v1"] = ...

  6. 关于PHP中的SESSION技术

    Session是服务器端技术,服务器在运行时可以为每一个用户创建一个其独享的session文件,所以用户在访问服务器web资源时,可以把各自的数据放在各自的session中,当用于再去访问该服务器中其 ...

  7. vue2.0项目中使用Ueditor富文本编辑器应用中出现的问题

    1.如何设置config中的内容 readonly:true,//只读模式wordCount:false,//是否开启字数统计enableAutoSave: false,//自动保存功能 重点:ena ...

  8. XML DTD跟SCHEMA约束 语法了解

    dtd语法 元素: <!Element 元素名称 数据类型|包含内容> 数据类型: #PCDATA:普通文本 使用的时候一般用()引起来 包含内容: 该元素下可以出现哪些元素, 用()引起 ...

  9. Verilog之$sreadmemb

    1 Memories  Memories file format is shown below, the address is specified as @ <address> in he ...

  10. 服务器控件使用eval()绑定属性出现服务器标记的格式不正确

    在使用asp.net服务器端控件的时候,想要动态绑定控件某属性的值,或者动态绑定控件事件方法的参数,例如一个<asp:RadioButton ID="RadioButton5" ...