{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,6,1]],"date-time":"2026-06-01T17:56:35Z","timestamp":1780336595963,"version":"3.54.1"},"reference-count":18,"publisher":"Association for Computing Machinery (ACM)","issue":"10","license":[{"start":{"date-parts":[[2006,12,1]],"date-time":"2006-12-01T00:00:00Z","timestamp":1164931200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Queue"],"published-print":{"date-parts":[[2006,12]]},"abstract":"<jats:p>Multicore architectures are an inflection point in mainstream software development because they force developers to write parallel programs. In a previous article in Queue, Herb Sutter and James Larus pointed out, \u201cThe concurrency revolution is primarily a software revolution. The difficult problem is not building multicore hardware, but programming it in a way that lets mainstream applications benefit from the continued exponential growth in CPU performance.\u201d In this new multicore world, developers must write explicitly parallel applications that can take advantage of the increasing number of cores that each successive multicore generation will provide.<\/jats:p>","DOI":"10.1145\/1189276.1189288","type":"journal-article","created":{"date-parts":[[2007,1,16]],"date-time":"2007-01-16T19:38:29Z","timestamp":1168976309000},"page":"24-33","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":45,"title":["Unlocking Concurrency"],"prefix":"10.1145","volume":"4","author":[{"given":"Ali-Reza","family":"Adl-Tabatabai","sequence":"first","affiliation":[{"name":"Intel"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Christos","family":"Kozyrakis","sequence":"additional","affiliation":[{"name":"Stanford University"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Bratin","family":"Saha","sequence":"additional","affiliation":[{"name":"Intel"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2006,12]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/1095408.1095421"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/1111037.1111061"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/165123.165164"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/1133981.1133985"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISCA.2006.9"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/1122971.1123001"},{"key":"e_1_2_1_7_1","unstructured":"See  reference 4.  See reference 4."},{"key":"e_1_2_1_8_1","unstructured":"See  reference 6.  See reference 6."},{"key":"e_1_2_1_9_1","unstructured":"See  reference 6.  See reference 6."},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1109\/HPCA.2006.1598134"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1109\/MM.2004.91"},{"key":"e_1_2_1_12_1","unstructured":"See  reference 10.  See reference 10."},{"key":"e_1_2_1_13_1","unstructured":"See  reference 11.  See reference 11."},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/1168857.1168903"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/1168857.1168900"},{"key":"e_1_2_1_16_1","unstructured":"See  reference 14.  See reference 14."},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1109\/MICRO.2006.9"},{"key":"e_1_2_1_18_1","unstructured":"Transactional Memory Online Bibliography; http:\/\/www.cs.wisc.edu\/trans-memory\/biblio\/.  Transactional Memory Online Bibliography; http:\/\/www.cs.wisc.edu\/trans-memory\/biblio\/."}],"container-title":["Queue"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1189276.1189288","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/1189276.1189288","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T15:06:22Z","timestamp":1750259182000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1189276.1189288"}},"subtitle":["Multicore programming with transactional memory"],"short-title":[],"issued":{"date-parts":[[2006,12]]},"references-count":18,"journal-issue":{"issue":"10","published-print":{"date-parts":[[2006,12]]}},"alternative-id":["10.1145\/1189276.1189288"],"URL":"https:\/\/doi.org\/10.1145\/1189276.1189288","relation":{},"ISSN":["1542-7730","1542-7749"],"issn-type":[{"value":"1542-7730","type":"print"},{"value":"1542-7749","type":"electronic"}],"subject":[],"published":{"date-parts":[[2006,12]]},"assertion":[{"value":"2006-12-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}