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