volatile :用于防止相关变量被优化。 (1)volatile 告诉编译器i是随时可能发生变化的,每次使用它的时候必须从i的地址中读取,因而编译器生成的可执行码会重新从i的地址读取数据放在k中。 (2)而优化做法是,由于编译器发现两次从i读数据的代码之间的代码没有对i进行过操作,它会自动把上次 ...
分类:
其他好文 时间:
2016-11-11 22:54:38
阅读次数:
161
【单件类】 保证只能有一个实例化对象,并提供全局的访问入口。 【设计注意事项】 1.阻止所有实例化的方法: private 修饰构造函数,赋值构造函数,赋值拷贝函数。 2.定义单实例化对象的方法: a.使用static 修饰 b.使用new+delete的方法 3.多线程版本: 使用双检测锁定,即先 ...
分类:
编程语言 时间:
2016-11-11 01:35:03
阅读次数:
345
#include "pbdata.h" uint8_t TxBuffer1[] = "USART Interrupt Example: This isUSART1 DEMO"; uint8_t RxBuffer1[],rec_f,tx_flag; volatile uint8_t TxCounter ...
分类:
其他好文 时间:
2016-11-11 01:26:33
阅读次数:
687
http://www.500d.me/article/5441.html **************************************** 来源:五百丁 作者:LZ2016-03-18 因为和同事有约定再加上LZ自己也喜欢做完一件事之后进行总结,因此有了这篇文章。这篇文章大部分内容都 ...
分类:
编程语言 时间:
2016-11-10 14:31:22
阅读次数:
180
转载:http://www.cnblogs.com/dolphin0520/p/3920373.html volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字 ...
分类:
其他好文 时间:
2016-11-09 01:11:32
阅读次数:
354
在当前的Java内存模型下,线程可以把变量保存在本地内存(比如机器的寄存器)中,而不是直接在主存中进行读写。 这就可能造成一个线程在主存中修改了一个变量的值,而另外一个线程还继续使用它在寄存器中的变量值的拷贝,造成数据的不一致。 要解决这个问题,只需要像在本程序中的这样,把该变量声明为volatil ...
分类:
编程语言 时间:
2016-11-08 19:25:41
阅读次数:
291
原文地址:http://www.cnblogs.com/ITtangtang/p/3948406.html HashMap的数据结构 HashMap的底层主要是基于数组和链表来实现的,它之所以有相当快的查询速度主要是因为它是通过计算散列码来决定存储的位置。HashMap中主要是通过key的hashC ...
分类:
其他好文 时间:
2016-11-07 17:43:29
阅读次数:
329
在嵌入式编程中,有对某地址重复读取两次的操作,如地址映射IO。但如果编译器直接处理p[0] = *a; p[1] = *a这种操作时,往往会忽略后一个,而直接使用前一个已计算的结果。这是有问题的,因为地址a由于映射了端口,每一次读取都不同,都必须从地址上读取,不能让编译器进行优化。volatile因 ...
分类:
其他好文 时间:
2016-11-07 02:41:17
阅读次数:
260
本文系转载,原文链接:http://www.cnblogs.com/Chase/archive/2010/07/05/1771700.html,如有侵权,请联系我:534624117@qq.com 引子1 猜猜看,下面这段代码有什么问题: 1 2 3 4 void Delay(UINT32 n) { ...
分类:
其他好文 时间:
2016-11-07 01:00:24
阅读次数:
142
1.什么是AQS? AQS的核心思想是基于volatile int state这样的volatile变量,配合Unsafe工具对其原子性的操作来实现对当前锁状态进行修改。同步器内部依赖一个FIFO的双向队列来完成资源获取线程的排队工作。 2.同步器的应用 同步器主要使用方式是继承,子类通过继承同步器 ...
分类:
其他好文 时间:
2016-11-04 20:37:11
阅读次数:
259