自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(2)
  • 收藏
  • 关注

原创 多核多线程对int,float等类型的读原子性

x86和x64中,从汇编的角度看, 对任何内存地址中的1byte的读永远是原子的.也就是说对一个char的读取永远是原子的 对内存地址对齐2byte的int16类型的读取是原子的,对4byte对齐的int32类型读取是原子的, 从从奔腾开始,对8byte对齐地址的int64读取是原子的. 但是,由于malloc和new都不保证创建任何对齐的内存.即使加上了pragma pack (

2013-08-18 01:18:36 1922

原创 详解volatile关键字

我们假设有这么个函数: void Func(int& k) { while (k!=100) {} }如果int引用k不等于100,则在函数内部不断地循环,我们且不论这个函数性能和作用如何,单说这个函数, 它的目的很明确,即如果k!=100,则运行这个函数的线程就卡在这里了. 下面我们写main.cpp: void Do(int& k) { while (k!=100) {

2013-08-14 21:15:42 683

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除