synchronized关键字

synchronized关键字锁住方法和this的不同之处:

public synchronized void MyMethod() {
/**
* 1 注意,如果synchronized的是TestClass.class,那么任何new出来的该类的实例都会被阻塞,该方法对于该类的所有实例都是一个临界区
* 2 如果synchronized的是this,那么只是针对于一个类的具体实例来说,并不是所有的
* 3 如果在方法命名处,即:public synchronized void MyMethod(),那么等效于2
*/
//synchronized (this) {
try {
Thread.sleep(10 * 1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//}
}

关键字volatile

​ 注意,对于volatile,Java只保证访问该变量的时候,访问的是最新的(即直接访问的内存,而不是拷贝),但是并不保证原子性,但是其也有可能出现脏数据,因为如果使用value++或者value += 1的操作(这些操作均依赖于volatile变量的上一次的值,因为这些操作都不是原子操作),有可能会出现脏数据volatile的另外一个作用是禁止指令的重排序优化。在一般情况下,Java执行语句的顺序可能会因为自动优化而修改,详情见:该博客

最新文章

  1. Android—Socket服务端与客户端用字符串的方式互相传递图片
  2. XSLT函数集合:数值函数、字符串函、节点集函数和布尔函数
  3. XSS安全性过滤
  4. js-FCC算法-No repeats please字符串的全排列
  5. CSS 使用小结
  6. iostat来对linux硬盘IO性能进行了解
  7. 套接字(linux相关)
  8. sql server存储过程实现批量删除
  9. react中input自动聚焦问题
  10. spring.boot 无法加载oracle驱动的可能原因
  11. 20175310 《Java程序设计》第3周学习总结
  12. Python复习笔记(二)变量进阶
  13. Vue.js示例:树型视图; 模式组件;
  14. 检测鼠标是否在UI上unity
  15. vim学习笔记(11):vim 去掉<200b>
  16. JavaScript的格式--从格式做起,做最严谨的工程师
  17. 【WEB前端系列之CSS】CSS3动画之Transform
  18. C#设计模式六大原则——接口隔离
  19. HDU 3395 Special Fish 最“大”费用最大流
  20. git-【六】分支的创建与合并

热门文章

  1. STM32 的PWM关闭方法
  2. linux删除软链接文件【原创】
  3. Mongodb 相关链接
  4. 安装YApi 接口管理平台
  5. sed 删除文本
  6. patindex
  7. 先安装VS后安装IIS,注册IIS方法
  8. app个推(透传消息)
  9. P4391 [BOI2009]Radio Transmission 无线传输(KMP)
  10. crontab和at任务