摘要: 公共数据接口,FutureData和RealData都要实现。public interface Data { //获取线程结果 public abstract String getRequest();} FutureData,当有线程想要获取RealData的时候,程序会被阻塞。等到RealData 阅读全文
posted @ 2022-07-14 11:10 烟笼寒山 阅读(56) 评论(0) 推荐(0)
摘要: synchronized是java中的一个关键字,也就是说是Java语言内置的特性。那么为什么会出现Lock呢?如果一个代码块被synchronized修饰了,当一个线程获取了对应的锁,并执行该代码块时,其他线程便只能一直等待,等待获取锁的线程释放锁,而这里获取锁的线程释放锁只会有两种情况: 1)获 阅读全文
posted @ 2022-07-14 10:43 烟笼寒山 阅读(59) 评论(0) 推荐(0)
摘要: ReentrantReadWriteLock里面提供了很多丰富的方法,不过最主要的有两个方法:readLock()和writeLock()用来获取读锁和写锁。 下面通过几个例子来看一下ReentrantReadWriteLock具体用法。假如有多个线程要同时进行读操作的话,先看一下synchroni 阅读全文
posted @ 2022-07-14 10:40 烟笼寒山 阅读(26) 评论(0) 推荐(0)
摘要: ReadWriteLock也是一个接口,在它里面只定义了两个方法:public interface ReadWriteLock { /** * Returns the lock used for reading. * * @return the lock used for reading. */ L 阅读全文
posted @ 2022-07-14 10:37 烟笼寒山 阅读(37) 评论(0) 推荐(0)
摘要: lockInterruptibly()方法:比较特殊,当通过这个方法去获取锁时,如果线程正在等待获取锁,则这个线程能够响应中断,即中断线程的等待状态。也就使说,当两个线程同时通过lock.lockInterruptibly()想获取某个锁时,假若此时线程A获取到了锁,而线程B只有在等待,那么对线程B 阅读全文
posted @ 2022-07-14 10:35 烟笼寒山 阅读(480) 评论(0) 推荐(0)
摘要: tryLock()方法:是有返回值的,它表示用来尝试获取锁,如果获取成功,则返回true,如果获取失败(即锁已被其他线程获取),则返回false,也就说这个方法无论如何都会立即返回。在拿不到锁时不会一直在那等待。 tryLock(long time, TimeUnit unit)方法:和tryLoc 阅读全文
posted @ 2022-07-14 10:29 烟笼寒山 阅读(2021) 评论(0) 推荐(1)
摘要: lock()方法:是平常使用得最多的一个方法,就是用来获取锁。如果锁已被其他线程获取,则进行等待。由于在前面讲到如果采用Lock,必须主动去释放锁,并且在发生异常时,不会自动释放锁。因此一般来说,使用Lock必须在try{}catch{}块中进行,并且将释放锁的操作放在finally块中进行,以保证 阅读全文
posted @ 2022-07-14 10:27 烟笼寒山 阅读(700) 评论(0) 推荐(0)
摘要: 所在包:java.util.concurrent.locks Lock是一个接口:public interface Lock { void lock(); void lockInterruptibly() throws InterruptedException; boolean tryLock(); 阅读全文
posted @ 2022-07-14 10:21 烟笼寒山 阅读(95) 评论(0) 推荐(0)
摘要: synchronized代码块类似于以下这种形式:synchronized(synObject) { }当在某个线程中执行这段代码块,该线程会获取对象synObject的锁,从而使得其他线程无法同时访问该代码块。synObject可以是this,代表获取当前对象的锁,也可以是类中的一个属性,代表获取 阅读全文
posted @ 2022-07-14 10:12 烟笼寒山 阅读(2852) 评论(0) 推荐(0)
摘要: 算法原理: (1)与锁相比,使用比较交换(下文简称CAS)会使程序看起来更加复杂一些。但由于其非阻塞性,它对死锁问题天生免疫,并且,线程间的相互影响也远远比基于锁的方式要小。更为重要的是,使用无锁的方式完全没有锁竞争带来的系统开销,也没有线程间频繁调度带来的开销,因此,它要比基于锁的方式拥有更优越的 阅读全文
posted @ 2022-07-14 10:05 烟笼寒山 阅读(254) 评论(0) 推荐(0)