
线程
myhAini
300字以内
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
线程遇到异常的时候就会释放锁
在这个Service中的Integer.paseInt(“a”)一定会发成异常,然后再测试类中使用了Thread进行了sleep,然后可以观察到结果就是线程A执行的时候已经进入到异常的代码块中。此时已经释放了锁。但是B也启动了线程,但是b不满足判断的条件,所以B进如了else。从这里看出线程遇到异常的时候就会释放锁。 package com.mayuhan.throwExceptionLock;...原创 2018-09-25 22:00:34 · 2129 阅读 · 2 评论 -
Java中的锁
无锁 偏向锁 轻量级锁 重量级锁 意向锁 共享锁 排它锁 死锁 乐观锁:认为自己在使用数据时不会有别的线程修改数据,所以不会添加锁,只是在更新数据的时候去判断之前有没有别的线程更新了这个数据。(CAS算法,AtomicInteger类的院子自增是通过CAS自旋实现) 适用场景:多操作较多,不加锁的特点能够使读的性能大大提高。 悲观锁:认为自己使用数据的时候一定有别的线程来修改数据,在获取数据的时候...原创 2019-03-14 14:33:46 · 186 阅读 · 0 评论 -
java线程安全问题-静态变量、实例变量、局部变量
1. 静态变量:线程非安全。 静态变量即类变量,位于方法区,为所有对象共享,共享一份内存,一旦静态变量被修改,其他对象均对修改可见,故线程非安全。 public class Test implements Runnable { private static int static_i;//静态变量 public void run() { ...原创 2019-03-07 17:31:31 · 419 阅读 · 0 评论