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;
文章插图
这是因为在IDEA中多了一个Monitor Ctrl-Break 。
文章插图
【二 Java多线程-线程关键字】
经验总结扩展阅读
- 二 Java 编码那些事
- 世界上最大的恐龙有多大 世界上最大的最长的恐龙长38米重130吨
- 世界上最长的腿有多长 世界上最长的腿有2米长
- 世界上最贵的自行车多少钱一辆
- 哪种肉质植物最贵 盘点价格昂贵的10种多肉植物排行榜
- 女神降临男二什么时候知道女主素颜_女神降临男二知道素颜了么
- 网络小说排行榜完本前十名
- 2023年农历六月二十一结婚会幸福吗
- 2023年农历六月二十二是不是结婚吉日 今天可以迎亲吗
- 2023年农历六月二十三结婚吉利吗 是黄道吉日吗