synchronized 是内置锁,而Lock 接口定义的是显示锁,Lock 提供了一种可重入的、可轮询的、定时的以及可中断的锁获取操作。 ReenTranLock实现了Lock接口,并提供了与synchronized 相同的互斥性和内存可见性。在获取ReentranLock时,有着与进入同步代码块 ...
分类:
编程语言 时间:
2017-11-18 21:03:40
阅读次数:
201
一 引言 在多线程的环境下,对同一份数据进行读写,会涉及到线程安全的问题。比如在一个线程读取数据的时候,另外一个线程在写数据,而导致前后数据的不一致性;一个线程在写数据的时候,另一个线程也在写,同样也会导致线程前后看到的数据的不一致性。这时候可以在读写方法中加入互斥锁,任何时候只能允许一个线程的一个 ...
分类:
编程语言 时间:
2017-11-08 20:00:03
阅读次数:
208
涉及到: 1.synchronized对象监视器为Object时的使用 2.synchronized对象监视器为Class时的使用 3.非线程安全是如何出现的. 4.关键字volatile的主要作用 5.关键字volatile与synchronized的区别与使用情况 一:同步方法: (1).非线程 ...
分类:
编程语言 时间:
2017-11-06 22:46:49
阅读次数:
130
转自:http://www.hollischuang.com/archives/1716 目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Avail ...
分类:
编程语言 时间:
2017-11-05 20:06:06
阅读次数:
171
一、什么叫可重入? 重入函数主要用于多任务环境中,一个可重入的函数简单来说就是可以被中断的函数,也就是说,可以在这个函数执行的任何时刻中断它,转入OS调度下去执行另外一段代码,而返回控制时不会出现什么错误;而不可重入的函数由于使用了一些系统资源,比如全局变量区,中断向量表等,所以它如果被中断的话,可 ...
分类:
其他好文 时间:
2017-10-20 16:46:22
阅读次数:
164
一、一个类中的一个synchronized方法调用本类中其他的synchronized方法,可以得到锁的 类中synchronized方法一调用本类中synchronized方法二 thread的run方法中实例Service,调用service1方法 run 测试结果: service1 serv ...
分类:
其他好文 时间:
2017-10-10 13:05:00
阅读次数:
143
1、自旋锁 2、自旋锁的其他种类 3、阻塞锁 4、可重入锁 5、读写锁 6、互斥锁 7、悲观锁 8、乐观锁 9、公平锁 10、非公平锁 11、偏向锁 12、对象锁 13、线程锁 14、锁粗化 15、轻量级锁 16、锁消除 17、锁膨胀 18、信号量 ...
分类:
编程语言 时间:
2017-09-24 15:29:45
阅读次数:
160
线程池 线程池是可以控制线程创建、释放、并通过某种策略尝试复用线程去执行任务的一种管理框架,从而实现线程资源与任务之间的一种平衡。 类图 Executor Executor是最基本的执行接口:“执行者”接口,只提供了一个方法:可以用来执行已经提交的Runnable任务对象,这个接口提供了一种将“任务 ...
分类:
编程语言 时间:
2017-09-23 15:29:14
阅读次数:
199
参考:http://blog.csdn.net/wenhui_/article/details/6889013 重入:重新进入 区别:多个任务能否同时调用一个函数,例如操作系统在进程调度过程中,或者单片机、处理器等的中断的时候会发生重入的现象 满足下面条件之一的多数是不可重入函数:(1)使用了静态数 ...
分类:
其他好文 时间:
2017-09-20 14:49:53
阅读次数:
149
线程安全的实现方法。 先来说说几个概念: 1.同步:多线程并发访问共享数据的时候,保证共享数据在同一时刻只能被一个(一些,使用信号量时)线程使用。 2.临界区:每个进程中访问临界资源的那段代码。 3.临界资源:每次仅允许一个进程访问的资源。 4.信号量:相当于一个计数器,每当一个进程使用一个资源,信 ...
分类:
编程语言 时间:
2017-09-18 20:36:42
阅读次数:
159