二 Java多线程-线程关键字( 二 )


1、静态方法:public synchronized static void methodName(),进入方法前要获得当前类对象的锁;
2、实例方法:public synchronized void methodName(),进入方法前要获得当前对象实例的锁;
3、代码块:最常用,指定一个特别的加锁对象,进入同步代码块前要获得这个对象锁 。
这几个就不一个个地说了,因为网上这类例子太多了 。
就简单说一下volatile和synchronized的比较:
1、volatile是synchronized的轻量级实现,性能要比synchronized要好;
2、volatile只能修饰变量,synchronized只能修饰方法和代码块;
3、volatile不会造成阻塞,synchronized会 。
最后再说一个我之前遇到的小问题:
如果使用的IDE是Eclipse,那么当前活动的线程数量可能是1;
但如果使用的IDE是IDEA,那么当前活动的线程数量可能是2;
有图为证:
二 Java多线程-线程关键字

文章插图
这是因为在IDEA中多了一个Monitor Ctrl-Break 。
二 Java多线程-线程关键字

文章插图
【二 Java多线程-线程关键字】

经验总结扩展阅读