Synchronized的个人学习总结
来源:互联网 发布:网络用语dp什么意思 编辑:程序博客网 时间:2024/06/05 00:28
这篇文章是我个人前段时间学习大神们对于Synchronized讲解的总结。个人认为挺适合小白从0开始理解Synchronized的。因为我也是看网上的文章加自己写代码理解的,可能也有错误,有问题的话,请各位在评论区指出哈。
先附上学习资料来源,感谢乐于分享的同道中人:
http://www.cnblogs.com/paddix/p/5367116.html,这一篇讲的是Synchronized原理。
http://www.cnblogs.com/QQParadise/articles/5059824.html,这一篇和上面一篇差不多,但是内容少,浅显一些。深入学习的话,还是要看上面一篇的。
http://blog.csdn.net/u010996597/article/details/44618067,这一篇把Synchronized(this),Synchronized(.class),Synchronized+方法,Synchronized+静态方法,到底锁什么进行了讲解。
如果大家急于求成,想马上知道Synchronized是干嘛的,那就来对了,请看我的总结:
首先大家要有个概念,monitor。(每个object都有一个监视器锁(monitor)。当monitor被占用时就会处于锁定状态,synchronized就是用来给monitor上锁的,当synchronized的代码块执行完就会释放这个monitor的锁。)
大家在代码中会看到好几种形式的synchronized,想必也是眼花缭乱不知道每个的具体作用。下面由我来科普:
synchronized(this)获得的是调用该含synchronized方法的引用对象,可能很拗口,上段代码,就是t1,t2的锁(具体代码不上了,类名取的通俗易懂)
RunnableTest t1= new RunnableTest(); RunnableTest t2= new RunnableTest(); t1.start(); t2.start();
synchronized(myclass.class)监控的是类本身的,获取类本身的监控器(monitor)。
synchronized修饰方法获取的是和synchronized(this)相同。
synchronized修饰static方法,监控的是该类本身的监视器。与synchronized(myclass.class)相同。
所以给小白们铲除一个误区,synchronized并不是锁住代码里面的东西,他们锁的只是监控器本身。线程获取监控器则runnable,获取不了则blocked。
- Synchronized的个人学习总结
- 学习java synchronized的总结
- 个人的学习总结
- 嵌入式学习的个人总结
- 对 synchronized 的个人理解
- synchronized的使用总结
- java的synchronized总结
- synchronized的使用总结
- 我的个人学习的小总结
- Synchronized和Lock的学习总结(一)
- 个人的学习总结及疑问
- 个人总结membrship需学习的地方
- 学习linux 的方法(个人总结)
- 个人学习总结一Java的概述
- 个人学习总结一Java的多线程
- sql 值得学习的语句(个人总结)
- 有关电子商务平台的个人学习总结
- Handler 的应用场景个人总结学习
- mybatis入门(包含仅有mybatis的项目)
- 浅谈android蓝牙电话API调用及相关代码
- 设计模式(二)
- Java理论与实践:正确使用volatile变量
- 572. Subtree of Another Tree
- Synchronized的个人学习总结
- 泛型
- CSU-ACM2017暑期训练12-KMP G
- A. Vladik and Courtesy
- 文本挖掘--数据文本处理-java
- SQL Server返回两个Date日期相差共多少天零多少小时零多少分钟零多少秒
- 2-8连接到LDAP
- linux安装fcitx
- 练习 3-6 修改itoa函数,使得该函数可以接收三个参数。其中,第三个参数为最小字段宽度。为了保证转换后所得的结果至少具有第三个参数指定的最小宽度,在必要时应在所得结果的左边填充一定的空格。