关键字: auto、extern、static、register、const、volatile、restricted、函数: rand()、srand()、time()、malloc()、calloc()、free()、不同的存储类提供了变量的作用域(scope)、链接(linkage)以及存储.....
分类:
其他好文 时间:
2014-09-04 16:29:49
阅读次数:
224
Java关键字transient和volatile小结(转)transient和volatile两个关键字一个用于对象序列化,一个用于线程同步,都是Java中比较高阶的话题,简单总结一下。transienttransient是类型修饰符,只能用来修饰字段。在对象序列化的过程中,标记为transien...
分类:
编程语言 时间:
2014-09-03 09:30:56
阅读次数:
206
transient和volatile两个关键字一个用于对象序列化,一个用于线程同步,都是Java中比较高阶的话题,简单总结一下。transienttransient是类型修饰符,只能用来修饰字段。在对象序列化的过程中,标记为transient的变量不会被序列化。示例:class Test {tran...
分类:
编程语言 时间:
2014-09-03 09:30:26
阅读次数:
209
今天在读《STL源码剖析》空间配置器第二级时看到了这句,有点不解,于是查阅后知:obj后面是个指针 STL_VOLATILE也应该是个类型定义的吧,程序中应该有define来对它定义。所以就是指针的指针。。指针,也就是地址,所以是__my_free_list是一个地址,*__my_free_list...
分类:
其他好文 时间:
2014-09-03 00:13:05
阅读次数:
420
上一节已经了解了java内存模型,JMM为了提高执行性能,引入了工作内存和主存两个概念,在继续讨论之前必须先搞清四种存储介质:寄存器、高级缓存、RAM和ROM。
RAM与ROM大家都比较熟悉了,可以看成是我们经常说的内存与硬盘,寄存器属于处理器里面的一部分,而高级缓存cache是CPU设计者为提高性能引入的一个缓存,也可以说是属于处理器的一部分。在利用CPU进行运算时必定涉及操作数的读取,假如C...
分类:
其他好文 时间:
2014-09-02 21:25:45
阅读次数:
428
函数外定义的是全局变量 ----------> 整个程序都可以访问到,不过不同文件需要extern函数内定义的是局部变量局部变量也分块作用域 :int a = 2;int main(){ int a = 5; { int a = 10; } }同一个函数内,子函数也可以访问到内部的变量#includ...
分类:
其他好文 时间:
2014-09-02 17:25:15
阅读次数:
293
菜鸟学习并行编程,参考《C#并行编程高级教程.PDF》,如有错误,欢迎指正。背景有时候必须访问变量、实例、方法、属性或者结构体,而这些并没有准备好用于并发访问,或者有时候需要执行部分代码,而这些代码必须单独运行,这是不得不通过将任务分解的方式让它们独立运行。当任务和线程要访问共享的数据和资源的时候,...
分类:
编程语言 时间:
2014-09-01 17:16:03
阅读次数:
396
在开发中,我们经常会有有这样的需求,就是在某段代码处开始,一步一步往下跟踪调试,有人说加个while(1)循环,其实这个循环加入后,其后边的代码就会被优化掉,达不到我们的目的,更好的办法是在需要的地方插入一句汇编: asm volatile ("B .");这样,不仅其后边的代码不会被编译器优化掉,还达到了我们跟踪调试代码的目的。...
分类:
其他好文 时间:
2014-08-31 00:33:30
阅读次数:
165
在Java内存模型中,有main memory,每个线程也有自己的memory (例如寄存器)。为了性能,一个线程会在自己的memory中保持要访问的变量的副本。这样就会出现同一个变量在某个瞬间,在一个线程的memory中的值可能与另外一个线程memory中的值,或者main memory中的值不一...
分类:
编程语言 时间:
2014-08-30 23:06:50
阅读次数:
254
对于这样的代码:?1234volatileinti=10;inta=i;...//其他代码,并未明确告诉编译器,对i进行过操作intb=i;volatile指出i是随时可能发生变化的,每次使用它的时候必须从i的地址中读取,因而编译器生成的汇编代码会重新从i的地址读取数据放在b中。而优化做法是,由于编...
分类:
其他好文 时间:
2014-08-30 21:34:59
阅读次数:
256