三种方式"/>
java实现线程同步的三种方式
线程同步
线程同步用来解决线程安全的问题。通常使用枷锁的方式,每次只允许一个线程加锁,加锁后才能进入访问,访问完毕后自动解锁,然后其他线程才能再加锁进来。
方式一:同步代码块
public class A{实例方法:public void xxx(){...synchronized(this){...}}静态方法:public static void xxx(){...synchronized(A.class){...}}
}
方式二:同步方法
public synchronized void xxx(){...
}
注:同步代码块和同步方法的比较:范围上同步代码块的范围更小,同步方法锁的范围更大,所以同步代码块性能更好;可读性上同步方法更好。
方式三:Lock锁
public class A{private final Lock lock = new ReentrantLock();public void xxx(){...try(){// 加锁lock.lock();...} catch (Exception e){...} finally{// 解锁lock.unlock();}}
}
更多推荐
java实现线程同步的三种方式
发布评论