{"id":482,"date":"2009-10-26T16:22:04","date_gmt":"2009-10-26T21:22:04","guid":{"rendered":"http:\/\/vgable.com\/blog\/?p=482"},"modified":"2009-10-26T16:22:07","modified_gmt":"2009-10-26T21:22:07","slug":"threading-is-wrong","status":"publish","type":"post","link":"https:\/\/vgable.com\/blog\/2009\/10\/26\/threading-is-wrong\/","title":{"rendered":"Threading is Wrong"},"content":{"rendered":"<blockquote><p>I\u2019m taking the following as an axiom: <strong>Exposing real pre-emptive threading with shared mutable data structures to application programmers is <em>wrong<\/em><\/strong>. \u2026It gets very hard to find humans who can actually reason about threads well enough to be usefully productive.<\/p>\n<p>When I give talks about this stuff, I assert that threads are a recipe for deadlocks, race conditions, horrible non-reproducible bugs that take endless pain to find, and hard-to-diagnose performance problems. <strong>Nobody ever pushes back<\/strong>.<\/p><\/blockquote>\n<p>&#8212;<a href=\"http:\/\/www.tbray.org\/ongoing\/When\/200x\/2009\/09\/27\/Concur-dot-next\">Tim Bray<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I\u2019m taking the following as an axiom: Exposing real pre-emptive threading with shared mutable data structures to application programmers is wrong. \u2026It gets very hard to find humans who can actually reason about threads well enough to be usefully productive. When I give talks about this stuff, I assert that threads are a recipe for [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,24,8],"tags":[385,266,169,29,441],"class_list":["post-482","post","type-post","status-publish","format-standard","hentry","category-programming","category-quotes","category-usability","tag-cognition","tag-parallelization","tag-software-development","tag-threads","tag-tim-bray"],"_links":{"self":[{"href":"https:\/\/vgable.com\/blog\/wp-json\/wp\/v2\/posts\/482","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vgable.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vgable.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vgable.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vgable.com\/blog\/wp-json\/wp\/v2\/comments?post=482"}],"version-history":[{"count":1,"href":"https:\/\/vgable.com\/blog\/wp-json\/wp\/v2\/posts\/482\/revisions"}],"predecessor-version":[{"id":483,"href":"https:\/\/vgable.com\/blog\/wp-json\/wp\/v2\/posts\/482\/revisions\/483"}],"wp:attachment":[{"href":"https:\/\/vgable.com\/blog\/wp-json\/wp\/v2\/media?parent=482"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vgable.com\/blog\/wp-json\/wp\/v2\/categories?post=482"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vgable.com\/blog\/wp-json\/wp\/v2\/tags?post=482"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}