《并发编程》--9.线程安全和synchronizd关键字

来源:互联网 发布:笔记本网卡mac地址修改 编辑:程序博客网 时间:2024/06/02 01:44

线程安全是并行开发的基础。一般来说,程序并行就是为了获得更高的执行效率,但是高效率不能牺牲正确性为代价,否则将毫无意义。


故jdk提供了synchronized关键字,来实现线程之间的同步。他的工作就是对同步的代码加锁,使得这段代码有且只有一个线程执行,从而保证线程间的安全性

synchronized关键字可以有很多用法,我做了一个简单的整理,如下

1.指定对象加锁:进入同步代码前需要获得指定对象的锁

synchronized (entity) {... //同步代码块}

2.指定实例方法加锁:进入同步代码需要获得指定实例方法的锁

public  synchronized void increase(){... //同步代码块}

3.指定静态方法加锁:相当于对当前类加锁,进入同步代码需要获得当前类的锁

public static synchronized void increase(){... //同步代码块}