Java中synchronized的使用

来源:互联网 发布:郭天祥51单片机pdf 编辑:程序博客网 时间:2024/05/22 04:25

我们经常会遇到当一个类中的某个方法被加上synchronized之后,启动一个线程访问该方法,那么在启动一个新的线程后,新的线程能不能访问这个类对象中的其他方法;总的来说大致的分为一下几种情况:

1.其他方法前是否也加了synchronized关键字,如果没加,则能;例1:


2.如果这个方法内部调用了wait,则可以进入其他synchronized方法;例2:


3.如果其他个方法都加了synchronized关键字,并且内部没有调用wait,则不能;例3:


4.如果其他方法是static,他用的同步锁是当前类的字节码,与非静态的方法不能同步,因为非静态的方法用的是this;例4:


例1:


例2:


例3:


例4:










0 0
原创粉丝点击