{"id":43523,"date":"2014-11-27T07:00:00","date_gmt":"2014-11-27T07:00:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/oldnewthing\/2014\/11\/27\/some-light-reading-on-lock-free-programming\/"},"modified":"2014-11-27T07:00:00","modified_gmt":"2014-11-27T07:00:00","slug":"some-light-reading-on-lock-free-programming","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/oldnewthing\/20141127-00\/?p=43523\/","title":{"rendered":"Some light reading on lock-free programming"},"content":{"rendered":"<p>Today is a holiday in the United States, so I&#8217;m going to celebrate by referring you to other things to read.\n I&#8217;m going to start with a presentation by Bruce Dawson at GDC 2009, which is basically multiple instances of the question &#8220;Is this code correct?&#8221;, and the answer is always &#8220;No!&#8221; Although the title of the talk is <i>Lockless Programming in Games<\/i>, the information is relevant to pretty much everybody. I can&#8217;t find a recording of the presentation, but you can <a href=\"http:\/\/www.gdcvault.com\/play\/1751\/Lockless-Programming-in\"> download the PowerPoint slides<\/a> or <a href=\"https:\/\/view.officeapps.live.com\/op\/view.aspx?src=http:\/\/twvideo01.ubm-us.net\/o1\/vault\/gdc09\/slides\/GDC09_Dawson_Lockless_Programming.ppt\"> view them in your browser<\/a>. But I recommend downloading the PowerPoint slides and reading the notes, because the notes explain the slides. [Update: Ah, you can see the notes in the browser by clicking the Notes button at the bottom. So download whichever you prefer. Just make sure you read the notes.]\n A more game-focused presentation by Bruce Dawson has the more general title <i>Coding for Multiple Cores<\/i>. <a href=\"http:\/\/download.microsoft.com\/download\/5\/b\/e\/5bec52bd-8f96-4137-a2ab-df6c7a2580b9\/Coding_for_Multiple_Cores.ppt\"> Download the PowerPoint sides<\/a> or <a href=\"https:\/\/view.officeapps.live.com\/op\/view.aspx?src=http:\/\/download.microsoft.com\/download\/5\/b\/e\/5bec52bd-8f96-4137-a2ab-df6c7a2580b9\/Coding_for_Multiple_Cores.ppt\"> view them in your browser<\/a>.\n Then there is the MSDN white paper that he authored, <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/ee418650(v=vs.85).aspx\"> <i>Lockless Programming Considerations for Xbox 360 and Microsoft Windows<\/i><\/a>.\n Finally, there&#8217;s Herb Sutter&#8217;s two-part talk <a href=\"https:\/\/channel9.msdn.com\/Shows\/Going+Deep\/Cpp-and-Beyond-2012-Herb-Sutter-atomic-Weapons-1-of-2\"> atomic&lt;&gt; Weapons, part 1<\/a> and <a href=\"https:\/\/channel9.msdn.com\/Shows\/Going+Deep\/Cpp-and-Beyond-2012-Herb-Sutter-atomic-Weapons-2-of-2\"> part 2<\/a>.<\/p>\n<p> That should keep you busy for a while. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Today is a holiday in the United States, so I&#8217;m going to celebrate by referring you to other things to read. I&#8217;m going to start with a presentation by Bruce Dawson at GDC 2009, which is basically multiple instances of the question &#8220;Is this code correct?&#8221;, and the answer is always &#8220;No!&#8221; Although the title [&hellip;]<\/p>\n","protected":false},"author":1069,"featured_media":111744,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[25],"class_list":["post-43523","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-oldnewthing","tag-code"],"acf":[],"blog_post_summary":"<p>Today is a holiday in the United States, so I&#8217;m going to celebrate by referring you to other things to read. I&#8217;m going to start with a presentation by Bruce Dawson at GDC 2009, which is basically multiple instances of the question &#8220;Is this code correct?&#8221;, and the answer is always &#8220;No!&#8221; Although the title [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts\/43523","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/users\/1069"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/comments?post=43523"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts\/43523\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/media\/111744"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/media?parent=43523"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/categories?post=43523"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/tags?post=43523"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}