static 1、概述 static 声明的变量在C语言中有两方面的特征: 1)、变量会被放在程序的全局存储区中,这样可以在下一次调用的时候还可以保持原来的赋值。这一点是它与堆栈变量和堆变量的区别。 2)、变量用static告知编译器,自己仅仅在变量的作用范围内可见。这一点是它与全局变量的区别。 2 ...
分类:
其他好文 时间:
2018-05-14 17:35:51
阅读次数:
133
重入锁 1.重入锁基本操作: public class ReentranLockTest implements Runnable{ private static ReentrantLock lock = new ReentrantLock(); public void run() { // TODO ...
分类:
编程语言 时间:
2018-05-12 15:35:35
阅读次数:
198
一、可重入函数1)什么是可重入性?可重入(reentrant)函数可以由多于一个任务并发使用,而不必担心数据错误。相反, 不可重入(non-reentrant)函数不能由超过一个任务所共享,除非能确保函数的互斥(或者使用信号量,或者在代码的关键部分禁用中断)。可重入函数可以在任意时刻被中断,稍后再继 ...
分类:
其他好文 时间:
2018-05-12 00:06:45
阅读次数:
155
一个对象是否需要是线程安全的取决于它是否被多个线程访问。 当多个线程访问同一个可变状态量时如果没有使用正确的同步规则,就有可能出错。解决办法: 不在线程之间共享该变量 将状态变量修改为不可变的 在访问状态变量时使用同步机制 完全由线程安全类构造的程序也不一定是线程安全的,线程安全类中也可以包含非线程 ...
分类:
编程语言 时间:
2018-05-11 17:16:04
阅读次数:
198
参考文档:Java多线程系列--“JUC锁”02之 互斥锁ReentrantLock:http://www.cnblogs.com/skywang12345/p/3496101.htmlReentrantLock介绍ReentrantLock是一个可重入的互斥锁,又被称为“独占锁”Reentrant ...
分类:
其他好文 时间:
2018-05-10 23:37:26
阅读次数:
173
重入锁(ReentrantLock)是一种递归无阻塞的同步机制。以前一直认为它是synchronized的简单替代,而且实现机制也不相差太远。不过最近实践过程中发现它们之间还是有着天壤之别。 以下是官方说明:一个可重入的互斥锁定 Lock,它具有与使用 synchronized 方法和语句所访问的隐 ...
分类:
其他好文 时间:
2018-05-10 20:24:19
阅读次数:
220
import threading threading模块里提供的类。 1. Thread:表示一个线程的执行的对象。 2. Lock:锁原语对象 3. Rlock:可重入锁对象。使单线程可以再次获得已经获得的锁。 4. Condition:条件变量对象。能让一个线程停下来,等待其他线程满足了“某个” ...
分类:
编程语言 时间:
2018-05-10 14:26:04
阅读次数:
207
?ReentrantLock 直接使用lock接口的话,我们需要实现很多方法,不太方便,ReentrantLock是唯一实现了Lock接口的类,并且ReentrantLock提供了更多的方法,ReentrantLock,意思是“可重入锁”。 以下是ReentrantLock的使用案例: 例子1,lo... ...
分类:
其他好文 时间:
2018-05-09 19:26:05
阅读次数:
137
Java Thread系列(五)synchronized synchronized锁重入 关键字 synchronized 拥有锁重入的功能,也就是在使用 synchronized 时,当线程等到一个对象的锁后,再次请求此对象时可以再次得到该对象的锁。出现异常时释放锁。 synchronized异常 ...
分类:
编程语言 时间:
2018-05-06 22:29:19
阅读次数:
192
实现思路 公平锁:创建有序节点,判断本节点是不是序号最小的节点(第一个节点),若是,则获取锁;若不是,则监听比该节点小的那个节点的删除事件。 非公平锁:直接尝试在指定path下创建节点,创建成功,则说明该节点抢到锁了。如果创建失败,则监听锁节点的删除事件,或者sleep一段时间后再重试。 可重入:使 ...
分类:
其他好文 时间:
2018-05-01 20:32:27
阅读次数:
194