(二)synchronized关键字(2)怎么用

一 、缺点    synchronized(this)

缺点:A获得锁,B等A执行完,耗时。synchronized同步语句块解决

一个访问对象synchronized,另一个可以访问该对象非synchronized

不在synchronized代码块中就异步执行,在synchronized代码块中就是同步执行。

三  synchronized(object)代码块间使用

1.synchronizedsynchronized(this)同步效果

2.synchronized(obj)两线程用同一“对象监视器”,结果才同步

五 静态synchronized方法与synchronized(class)代码块

synchronized静态方法和synchronized(class)代码块上都是是给Class类上锁,而synchronized关键字加到非static静态方法上是给对象上锁。

A,B和线程C持有的锁不一样,所以A和B运行同步,但是和C运行不同步。 

六 数据类型String的常量池属性

常量池缓存功能:String s1 ="a";    String s2="a";    System.out.println(s1==s2);//true

常量池中字符串只存一份! s2不会申请新的空间,已存内存地址返回

synchronized(“abc”){}        synchronized(“abc”){}

修饰方法持有相同锁,只有一个线程能运行。不要使用synchronized(string),用synchronized(object)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容