摘要: 查了几天资料,总觉得还是没有搞懂,在这里现把我的心得说出来,不对的修改,大家一起讨论。提到内存屏障,不得不提到这几个东西:1。编译器2。CPU3。volatile4。memory损坏描述符内存屏障的意思是说:为了防止编译器和硬件的不正确优化,使得对存储器的访问顺序(其实就是变量)和书写程序时的访问顺序不一致而提出的一种解决办法。因为内存屏障这个东西和硬件也是息息相关的,比如在arm上(至少在armV6之前)就没有串行化的指令(而x86上就有),所以arm上的内存屏障就是这样:asm volatile("":::"memory");有人说这个操作为空,我不 阅读全文
posted @ 2011-08-17 17:04 by碳水化合物 阅读(992) 评论(0) 推荐(0)
摘要: boost库中asio的操作常常是异步操作。这点也会常常需要运行io_service线程与UI线程同步。线程同步总是让人有些头疼。一个简化的办法是将UI线程的事件通过post方法同步到io_service的线程执行,尽力避免此类同步。诸如socket之类需要尽快响应的类而言,智能指针是个好选择。但是存在一个问题,就是当io_service线程结束,而非所有的post操作都已经返回。会有清理内存,及使用到野指针的危险。一个替代办法是,等待所有的post完成之后再介绍io_service线程。因为所有的的post都完成之后,即便不调用io_service.stop函数此线程也会结束。将以上两点结合 阅读全文
posted @ 2011-08-17 14:28 by碳水化合物 阅读(170) 评论(0) 推荐(0)
摘要: 4-12这里有些Ogre的基础教程http://www.guibian.com/default.asp?CateID=6&page=5这里也有一些http://blog.csdn.net/pizi0475/category/551801.aspx关于地形的一个教程http://blog.csdn.net/dragon2/archive/2010/09/04/5862925.aspx 阅读全文
posted @ 2011-04-12 14:01 by碳水化合物 阅读(115) 评论(0) 推荐(0)