操作系统线程理论 线程概念的引入背景 进程 之前我们已经了解了操作系统中进程的概念,程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程。程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述文本;进程是程序的一次执行活动,属于动态概念。在多道 ...
分类:
编程语言 时间:
2018-02-07 21:19:22
阅读次数:
190
摘要 从使用场景的角度出发来介绍对ReentrantLock的使用,相对来说容易理解一些。 场景1:如果发现该操作已经在执行中则不再执行(有状态执行) a、用在定时任务时,如果任务执行时间可能超过下次计划执行时间,确保该有状态任务只有一个正在执行,忽略重复触发。b、用在界面交互时点击执行较长时间请求 ...
分类:
编程语言 时间:
2018-02-02 00:40:51
阅读次数:
188
根据源码发现:维护了这个可见性变量state ;同一个线程对可重入锁体现用state标记作累加,int nextc = c + acquires; private volatile int state; ...
分类:
其他好文 时间:
2018-01-16 18:27:38
阅读次数:
118
转载来源:http://www.cnblogs.com/lxmyhappy/p/7380073.html 1、Java都有哪些锁? 公平锁/非公平锁 可重入锁 独享锁/共享锁 互斥锁/读写锁 乐观锁/悲观锁 分段锁 偏向锁/轻量级锁/重量级锁 自旋锁 Java实现锁有两种语法,一种是synchron ...
分类:
编程语言 时间:
2017-12-25 13:28:45
阅读次数:
210
关键字在使用synchronized时,当线程得到一个对象锁时,这时这个线程再次请求此对象锁是可以拿到的,也就说明同步方法之间是可以进行互相调用的, 可重入锁的概念: 自己可以再次获取自己的内部锁,譬如有一条线程获得了某个对象的对象锁,此时这个对象锁还没释放,当其要再次获得这个对象锁的时候还能获取, ...
分类:
其他好文 时间:
2017-12-05 20:09:36
阅读次数:
185
“可重入锁”的概念是:自己可以再次获得自己的内部锁。比如有一条线程获得了某个对象的锁,此时这个对象还没有释放,当其再次想获得这个对象的锁的时候还是可以获得的,如果不可锁重入的话,就会造成死锁。 在加粗的sychronized在的时候结果会有下面,结果不唯一的: 1str1 2str1 1str2 2 ...
分类:
编程语言 时间:
2017-12-02 00:39:27
阅读次数:
199
转自:http://www.hollischuang.com/archives/1716 目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Avail ...
分类:
编程语言 时间:
2017-11-05 20:06:06
阅读次数:
171
一、一个类中的一个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