堆内存地址未发生变化: 对象堆内存地址没发生变化的情况下,即值是否与变仍然是同一把锁。 堆内存地址变化: 在线程尝试进入过同步代码时复制当前对象锁副本。 在复制对象锁副本之后改变对象指向不影响对象锁,对象副本相同,即锁相同。 在复制对象锁副本之前改变对象指向,此时对象锁实质上已经是两把对象锁。 复制 ...
分类:
其他好文 时间:
2017-02-03 17:58:57
阅读次数:
137
程序代码如下:publicclassMyQueue<E>{
//1.提供集合容器
privateList<E>list=newArrayList<E>();
//2.提供计数器
privateAtomicIntegercounter=newAtomicInteger();
//3.提供上限下限
privateintMAX;
privateintMIN=0;
//4.提供锁对象
privateObjectloc..
分类:
其他好文 时间:
2016-11-24 09:33:37
阅读次数:
226
一、JDK5之后的Lock锁的概述和使用packagea;
importjava.util.concurrent.locks.Lock;
importjava.util.concurrent.locks.ReentrantLock;
publicclassSellTicketimplementsRunnable{
//定义票
privateinttickets=100;
//定义锁对象
privateLocklock=newReentrantLock()..
分类:
编程语言 时间:
2016-11-16 03:21:24
阅读次数:
271
putIfAbsent方法和List并不是使用的同一个锁对象,List使用的锁对象并不是BadListHelper,而是list。假如A线程进入putIfAbsent方法,list这个锁并没有被获取(A线程获取的是 BadListHelper这个对象),所以其他线程还能够获得list锁对象来改变li ...
分类:
其他好文 时间:
2016-10-21 07:51:45
阅读次数:
144
在Java5中,专门提供了锁对象,利用锁可以方便的实现资源的封锁,用来控制对竞争资源并发访问的控制,这些内容主要集中在java.util.concurrent.locks 包下面,里面有三个重要的接口Condition、Lock、ReadWriteLock。 Condition: Condition ...
分类:
编程语言 时间:
2016-10-13 17:07:26
阅读次数:
200
在之前解决线程安全的过程中,虽然我们可以理解同步代码块和同步方法的锁对象问题, 但是我们并没有直接看到在哪里加上了锁,在哪里释放了锁, 为了更清晰的表达如何加锁和释放锁,JDK5以后提供了一个新的锁对象Lock。 注意:Lock是个接口。 2个常用方法: void lock(): 获取锁。 void ...
分类:
编程语言 时间:
2016-10-10 20:12:31
阅读次数:
145
资源共享 资源共享 当多个线程访问同一块资源时,很容易引发数据错乱和数据安全问题 安全隐患分析: 安全隐患的解决——互斥锁: 互斥锁使用格式 @synchronized(锁对象) { // 需要锁定的代码 } 注意:锁定1份代码只用1把锁,用多把锁是无效的 互斥锁的优缺点: 优点:能有效防止因多线程 ...
分类:
编程语言 时间:
2016-10-09 17:01:07
阅读次数:
210
当两个线程同时操作同一资源(临界资源),当其中一个线程修改了资源,但是其中一个线程读的还是之前的数据, 这样的结果就是错误的。 我们通过互斥和同步的方式来解决这个问题 建立一个锁对象public final Object lockObj=new Object(); lockObject.wait() ...
分类:
编程语言 时间:
2016-09-21 01:42:59
阅读次数:
196
觉得还不错 留个记录,转载自http://zhh9106.iteye.com/blog/2151791 在java编程中,经常需要用到同步,而用得最多的也许是synchronized关键字了,下面看看这个关键字的用法。 因为synchronized关键字涉及到锁的概念,所以先来了解一些相关的锁知识。 ...
分类:
编程语言 时间:
2016-09-09 18:17:59
阅读次数:
192
对象锁(方法锁),是针对一个对象的,它只在该对象的某个内存位置声明一个标识该对象是否拥有锁,所有它只会锁住当前的对象,一般一个对象锁是对一个非静态成员变量进行synchronized修饰,或者对一个非静态成员方法进行synchronized进行修饰,对于对象锁,不同对象访问同一个被synchroni ...
分类:
其他好文 时间:
2016-09-05 15:23:21
阅读次数:
207