<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>刘未鹏|C++的罗浮宫 - 并发编程</title><link>http://blog.csdn.net/pongba/category/299994.aspx</link><description>并发编程是下个十年最需要关注的编程技术之一</description><dc:language>zh-CN</dc:language><lastUpdateTime>Fri, 18 Apr 2008 19:13:00 GMT</lastUpdateTime><ttl>60</ttl><item><dc:creator>刘未鹏</dc:creator><title>《C++0x漫谈》系列之：多线程内存模型</title><link>http://blog.csdn.net/pongba/archive/2007/06/20/1659952.aspx</link><pubDate>Wed, 20 Jun 2007 21:29:00 GMT</pubDate><guid>http://blog.csdn.net/pongba/archive/2007/06/20/1659952.aspx</guid><wfw:comment>http://blog.csdn.net/pongba/comments/1659952.aspx</wfw:comment><comments>http://blog.csdn.net/pongba/archive/2007/06/20/1659952.aspx#Feedback</comments><slash:comments>19</slash:comments><wfw:commentRss>http://blog.csdn.net/pongba/comments/commentRss/1659952.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1659952</trackback:ping><description>内存模型是C++09最重大的特性之一，之所以重大是因为多线程并发编程将成为下一个十年的主题之一，对此C++小胡子Herb Sutter早有精彩的论述。为什么在C++里面要想顺畅地进行多线程编程需要对标准进行修订（而不仅仅是通过现有的多线程库如POSIX、boost.Thread即可）呢？对此Hans Boehm在他的著名的超级晦涩难懂的paper——《Threads Cannot be Implemented as a Library》——里面其实已经详尽地阐述了原因，但是，一，尽管这篇paper被到处cite，newsgroup上面关于到底能不能用volatile来实现线程安全性这类问题还是争议不断。这方面就连C++牛魔王Andrei Alexandrescu都犯过错误，可见有多难缠。
&lt;img src ="http://blog.csdn.net/pongba/aggbug/1659952.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>刘未鹏</dc:creator><title>并行编程大牛专访</title><link>http://blog.csdn.net/pongba/archive/2007/04/20/1572683.aspx</link><pubDate>Fri, 20 Apr 2007 16:26:00 GMT</pubDate><guid>http://blog.csdn.net/pongba/archive/2007/04/20/1572683.aspx</guid><wfw:comment>http://blog.csdn.net/pongba/comments/1572683.aspx</wfw:comment><comments>http://blog.csdn.net/pongba/archive/2007/04/20/1572683.aspx#Feedback</comments><slash:comments>13</slash:comments><wfw:commentRss>http://blog.csdn.net/pongba/comments/commentRss/1572683.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1572683</trackback:ping><description>我说过，我并不觉得自己是并行编程专家。这个领域总是有那么多的东西等着你去学，那么多的路等着你去走，那么多令人兴奋不已的新技术等着你去尝试；更不用说还有那么多的大牛了，他们在这个领域内的时间比我不知长了多少——有的甚至比我出生还早:)。跟他们讨论和学习总是令我获益匪浅。因此前段时间我试着跟他们中的一些人用email接触（他们是我心目中的并行编程大牛、大虾、偶像…）。幸运的是，其中有些人回复了我的email。我在邮件里面对他们每个人都问了同样的十个问题：五个一般性的并行编程问题，另五个则是关于他们的并行编程系统。从下周开始我将会每周发布一篇专访。&lt;img src ="http://blog.csdn.net/pongba/aggbug/1572683.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>刘未鹏</dc:creator><title>Beautiful Proof - Data-Race-Free Implies Sequential Consistency</title><link>http://blog.csdn.net/pongba/archive/2007/03/09/1525446.aspx</link><pubDate>Fri, 09 Mar 2007 17:22:00 GMT</pubDate><guid>http://blog.csdn.net/pongba/archive/2007/03/09/1525446.aspx</guid><wfw:comment>http://blog.csdn.net/pongba/comments/1525446.aspx</wfw:comment><comments>http://blog.csdn.net/pongba/archive/2007/03/09/1525446.aspx#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://blog.csdn.net/pongba/comments/commentRss/1525446.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1525446</trackback:ping><description>Disclaimer: You should first (but not the least) understand the fundamentals of multithreading memory models to be able to read the following text. I personally recommend you start with the related C++0x memory model proposals if you're a C++ programmer, or the java memory model if you're a java programmer. That being said, the principles behind the proof apply to all kinds of the so-called data-race-free models.

If it happens that you’ve been slogging through all the glories proposals of C++&lt;img src ="http://blog.csdn.net/pongba/aggbug/1525446.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>刘未鹏</dc:creator><title>关于C++0x内存模型和序列点的一些思考</title><link>http://blog.csdn.net/pongba/archive/2006/09/26/1287803.aspx</link><pubDate>Tue, 26 Sep 2006 15:19:00 GMT</pubDate><guid>http://blog.csdn.net/pongba/archive/2006/09/26/1287803.aspx</guid><wfw:comment>http://blog.csdn.net/pongba/comments/1287803.aspx</wfw:comment><comments>http://blog.csdn.net/pongba/archive/2006/09/26/1287803.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://blog.csdn.net/pongba/comments/commentRss/1287803.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1287803</trackback:ping><description>这几天断断续续一直在看关于C++0x的并发内存模型的proposal，这堆proposal显然是所有0x proposals里面最困难的。看的时候问题不断，单单是对原始单线程内存模型的改进和序列点概念的精化就非常tricky。所以看的时候总结了一些模糊的地方，昨天给发到comp.lang.c++.moderated上面去了，Francis Glassborow给了一个回贴澄清了里面的一个问题，不过尚留下不少其它的。相信后面还会有热心人（james kanze, maybe:))回复的，呵呵。
贴在这里，欢迎有兴趣的朋友与我探讨:-)
[后记] 果然不出我所料，新闻组上的大牛人&amp;大热心人James Kanze果然火速给出了最为详尽的回复，哈哈，我帖子里的绝大部分推测都是对的:) 有兴趣的朋友可以查看新闻组上的链接&lt;img src ="http://blog.csdn.net/pongba/aggbug/1287803.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>刘未鹏</dc:creator><title>锁无关的数据结构与Hazard指针——操纵有限的资源</title><link>http://blog.csdn.net/pongba/archive/2006/01/29/589864.aspx</link><pubDate>Sun, 29 Jan 2006 20:57:00 GMT</pubDate><guid>http://blog.csdn.net/pongba/archive/2006/01/29/589864.aspx</guid><wfw:comment>http://blog.csdn.net/pongba/comments/589864.aspx</wfw:comment><comments>http://blog.csdn.net/pongba/archive/2006/01/29/589864.aspx#Feedback</comments><slash:comments>15</slash:comments><wfw:commentRss>http://blog.csdn.net/pongba/comments/commentRss/589864.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=589864</trackback:ping><description>...在你将要阅读的这篇文章中我们就会向你呈上这么一项激动人心的技术。下文将要介绍的算法通过操纵手头有限的资源，以一种近乎神奇的方式达到了其目的...&lt;img src ="http://blog.csdn.net/pongba/aggbug/589864.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>刘未鹏</dc:creator><title>锁无关的(Lock-Free)数据结构——在避免死锁的同时确保线程继续</title><link>http://blog.csdn.net/pongba/archive/2006/01/26/588638.aspx</link><pubDate>Thu, 26 Jan 2006 01:15:00 GMT</pubDate><guid>http://blog.csdn.net/pongba/archive/2006/01/26/588638.aspx</guid><wfw:comment>http://blog.csdn.net/pongba/comments/588638.aspx</wfw:comment><comments>http://blog.csdn.net/pongba/archive/2006/01/26/588638.aspx#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://blog.csdn.net/pongba/comments/commentRss/588638.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=588638</trackback:ping><description>...不过跟所谓的“锁无关（Lock-Free）”数据结构一比就只能靠边站了，后者是多线程编程的极重要技术之一。在今年的“Programming Language Design and Implementation”大会...&lt;img src ="http://blog.csdn.net/pongba/aggbug/588638.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>刘未鹏</dc:creator><title>C++中的求值|副作用|序列点所导致的模糊语义</title><link>http://blog.csdn.net/pongba/archive/2005/12/01/541440.aspx</link><pubDate>Thu, 01 Dec 2005 18:22:00 GMT</pubDate><guid>http://blog.csdn.net/pongba/archive/2005/12/01/541440.aspx</guid><wfw:comment>http://blog.csdn.net/pongba/comments/541440.aspx</wfw:comment><comments>http://blog.csdn.net/pongba/archive/2005/12/01/541440.aspx#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://blog.csdn.net/pongba/comments/commentRss/541440.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=541440</trackback:ping><description>前一阵子一个偶然的机会，在soloist的blog上（http://blog.csdn.net/soloist）看到一篇关于C/C++中的一个十分历史悠久的问题的讨论，即表达式求值的问题。说实话这个问题着实不新鲜了，被所有论坛提出过无数次，无非就是表达式求值顺序不确定的问题嘛。所以我也就没太在意，soloist那里吵翻了天，说什么的都有，热闹非凡。&lt;img src ="http://blog.csdn.net/pongba/aggbug/541440.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>