/*
* 一、volatile 关键字:当多个线程进行操作共享数据时,可以保证内存中的数据可见。
* 相较于 synchronized 是一种较为轻量级的同步策略。
*
* 注意:
* 1. volatile 不具备“互斥性”
* 2. volatile 不能保证变量的“原子性”
*/
public class TestVolatile { public static void main(String[] args) {
ThreadDemo td = new ThreadDemo();
new Thread(td).start(); while(true){
if(td.isFlag()){
System.out.println("------------------");
break;
}
} } } class ThreadDemo implements Runnable { private volatile boolean flag = false; @Override
public void run() { try {
Thread.sleep(200);
} catch (InterruptedException e) {
} flag = true; System.out.println("flag=" + isFlag()); } public boolean isFlag() {
return flag;
} public void setFlag(boolean flag) {
this.flag = flag;
} }

最新文章

  1. silverlight使用小计(先做记录后续整理)
  2. JAVA 中数据库连接的方法之一
  3. jquery 平滑锚
  4. ct任务添加与中控机批量后台操作
  5. 完美完全卸载Oracle 11g数据库
  6. ubuntu - sudo in php exec
  7. POJ3071:Football(概率DP)
  8. ubuntu 安装python,easy_install和pip
  9. javascript推断的浏览器类型
  10. JAVA对数据库进行操作,实现数据库中数据的插入,查询,更改,删除操作
  11. Sublime Text前端开发工具介绍
  12. Unable to complete the scan for annotations for web application [/wrs] due to a StackOverflowError. Possible root causes include a too low setting for -Xss and illegal cyclic inheritance dependencies.
  13. Python常见十六个错误集合,你知道那些?
  14. 【iCore4 双核心板_ARM】例程六:IWDG看门狗实验——复位ARM
  15. go语言中结构struct
  16. Springboot中的连接池
  17. httpclient httpcore jar包及源码
  18. Linux 下 SSH 远程超时解决方案
  19. Mina 组件介绍之 IoAcceptor 与 IoConnector
  20. HDU 2256 Problem of Precision (矩阵快速幂)(推算)

热门文章

  1. webpack 4.x使用总结
  2. Codeforces 892 C.Pride
  3. jsp 项目中 web.xml 的作用
  4. redis 配置和使用(C++)
  5. libiop网络库数据结构和基础知识
  6. is_int is_float 判断数值是否为整数
  7. duilib 增加gif控件(基于gdi+,可控制播放暂停,自动设置大小)
  8. SQL Server 2008如何开启数据库的远程连接
  9. 如何识别字符串是否是UTF-8编码的
  10. KeyDown,KeyPress和KeyUp详解(转)