需要去学习去总结的知识点(线程)
2011-11-05 19:07
302 查看
Volatile修饰的成员变量在每次被线程访问时,都强迫从共享内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。 Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值对比。 这样当多个线程同时与某个对象交互时,就必须要注意到要让线程及时的得到共享成员变量的变化。 而volatile关键字就是提示VM:对于这个成员变量不能保存它的私有拷贝,而应直接与共享成员变量交互。 使用建议:在两个或者更多的线程访问的成员变量上使用volatile。当要访问的变量已在synchronized代码块中,或者为常量时,不必使用。 由于使用volatile屏蔽掉了VM中必要的代码优化,所以在效率上比较低,因此一定在必要时才使用此关键字。 就跟C中的一样禁止编译器进行优化~~~~
还欠缺的知识点synchronized的使用,Volatile的使用规则,计划做一个线程模拟器。去完善自己的知识点。
相关文章推荐
- 需要进一步学习的知识点和总结
- 【Python爬虫学习笔记(3)】Beautiful Soup库相关知识点总结
- Android阶段学习总结 7.25-7.29 天气预报 知识点
- 个人学习总结二多线程文件搜索(界面版)
- java线程学习(五)—java内存模型自己总结
- 【java学习】java知识点总结
- 总结linux学习过程中遇到的细小知识点之Linux帮助文档中各个符号的含义
- 【学习总结】【多线程】 安全隐患 & 通讯 & 线程的状态
- 学习android之 知识点总结
- OC ---- 字符串 数组 iOS学习-----细碎知识点总结
- html+css2次学习-----常用知识点总结
- 零基础学习Java编程语言需要掌握4大知识点
- Android虚拟机学习总结Dalvik虚拟机进程和线程的创建过程分析
- Linux文件属性相关知识点学习总结
- 黑马程序员之SQL学习笔记:数据库基础知识点学习总结
- Android学习日志之二:Activity知识点总结
- Android 开发需要掌握的技术知识点全面总结
- 深度学习的知识点总结
- 机器学习——神经网络、深度学习 知识点总结 及 面试题汇总
- python学习日记,易错知识点总结(1)