{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,11,18]],"date-time":"2025-11-18T12:12:23Z","timestamp":1763467943566,"version":"3.41.0"},"reference-count":19,"publisher":"Association for Computing Machinery (ACM)","issue":"5","license":[{"start":{"date-parts":[[2009,5,1]],"date-time":"2009-05-01T00:00:00Z","timestamp":1241136000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/100000001","name":"National Science Foundation","doi-asserted-by":"publisher","award":["EIA-0080124CCR-0204344CNS-0411127"],"award-info":[{"award-number":["EIA-0080124CCR-0204344CNS-0411127"]}],"id":[{"id":"10.13039\/100000001","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/100000144","name":"Division of Computer and Network Systems","doi-asserted-by":"publisher","award":["EIA-0080124CCR-0204344CNS-0411127"],"award-info":[{"award-number":["EIA-0080124CCR-0204344CNS-0411127"]}],"id":[{"id":"10.13039\/100000144","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Commun. ACM"],"published-print":{"date-parts":[[2009,5]]},"abstract":"<jats:p>\n            In a thread-safe\n            <jats:italic>concurrent queue<\/jats:italic>\n            , consumers typically wait for producers to make data available. In a\n            <jats:italic>synchronous queue<\/jats:italic>\n            , producers similarly wait for consumers to take the data. We present two new nonblocking, contention-free synchronous queues that achieve high performance through a form of\n            <jats:italic>dualism<\/jats:italic>\n            : The underlying data structure may hold both data and, symmetrically,\n            <jats:italic>requests<\/jats:italic>\n            .\n          <\/jats:p>\n          <jats:p>\n            We present performance results on 16-processor SPARC and 4-processor Opteron machines. We compare our algorithms to commonly used alternatives from the literature and from the Java SE 5.0 class\n            <jats:italic>java.util.concurrent.SynchronousQueue<\/jats:italic>\n            both directly in synthetic microbenchmarks and indirectly as the core of Java's\n            <jats:italic>ThreadPoolExecutor<\/jats:italic>\n            mechanism. Our new algorithms consistently outperform the Java SE 5.0\n            <jats:italic>SynchronousQueue<\/jats:italic>\n            by factors of three in unfair mode and 14 in fair mode; this translates to factors of two and ten for the\n            <jats:italic>ThreadPoolExecutor<\/jats:italic>\n            . Our synchronous queues have been adopted for inclusion in Java 6.\n          <\/jats:p>","DOI":"10.1145\/1506409.1506431","type":"journal-article","created":{"date-parts":[[2009,4,28]],"date-time":"2009-04-28T14:58:07Z","timestamp":1240930687000},"page":"100-111","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":22,"title":["Scalable synchronous queues"],"prefix":"10.1145","volume":"52","author":[{"suffix":"III","given":"William N.","family":"Scherer","sequence":"first","affiliation":[{"name":"Rice University, Houston, TX"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Doug","family":"Lea","sequence":"additional","affiliation":[{"name":"SUNY Oswego, Oswego, NY"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Michael L.","family":"Scott","sequence":"additional","affiliation":[{"name":"University of Rochester, Rochester, NY"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2009,5]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1109\/12.40843"},{"key":"e_1_2_1_2_1","volume-title":"Benjamin\/Cummings","author":"Andrews G.R.","year":"1991","unstructured":"Andrews , G.R. Concurrent Programming : Principles and Practice . Benjamin\/Cummings , 1991 . Andrews, G.R. Concurrent Programming: Principles and Practice. Benjamin\/Cummings, 1991."},{"key":"e_1_2_1_3_1","volume-title":"C Interfaces and Implementations: Techniques for Creating Reusable Software","author":"Hanson D.R.","year":"1997","unstructured":"Hanson , D.R. C Interfaces and Implementations: Techniques for Creating Reusable Software . Addison-Wesley , 1997 . Hanson, D.R. C Interfaces and Implementations: Techniques for Creating Reusable Software. Addison-Wesley, 1997."},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/1007912.1007944"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/114005.102808"},{"key":"e_1_2_1_6_1","volume-title":"Proceedings of the 23rd International Conference on Distributed Computing Systems (May","author":"Herlihy M.","year":"2003","unstructured":"Herlihy , M. , Luchangco , V. , Moir , M. Obstruction -free synchronization : Double-ended queues as an example . In Proceedings of the 23rd International Conference on Distributed Computing Systems (May 2003 ). Herlihy, M., Luchangco, V., Moir, M. Obstruction-free synchronization: Double-ended queues as an example. In Proceedings of the 23rd International Conference on Distributed Computing Systems (May 2003)."},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/78969.78972"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/359576.359585"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/121132.286599"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/361082.361093"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/7351.7352"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.scico.2005.03.007"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/103727.103729"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/248052.248106"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/1073970.1074013"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/1122971.1122994"},{"volume-title":"Proceedings, Workshop on Synchronization and Concurrency in Object-Oriented Languages (Oct. 2005). In conjunction with OOPSLA '05.","author":"Scherer III, W.N.","key":"e_1_2_1_18_1","unstructured":"Scherer III, W.N. , Lea , D. , Scott , M.L. A scalable elimination-based exchange channel . In Proceedings, Workshop on Synchronization and Concurrency in Object-Oriented Languages (Oct. 2005). In conjunction with OOPSLA '05. Scherer III, W.N., Lea, D., Scott, M.L. A scalable elimination-based exchange channel. In Proceedings, Workshop on Synchronization and Concurrency in Object-Oriented Languages (Oct. 2005). In conjunction with OOPSLA '05."},{"key":"e_1_2_1_19_1","volume-title":"Proceedings of the 18th International Symposium on Distributed Computing (Oct.","author":"Scherer III, W.N.","year":"2004","unstructured":"Scherer III, W.N. , Scott , M.L. Nonblocking concurrent objects with condition synchronization . In Proceedings of the 18th International Symposium on Distributed Computing (Oct. 2004 ). Scherer III, W.N., Scott, M.L. Nonblocking concurrent objects with condition synchronization. In Proceedings of the 18th International Symposium on Distributed Computing (Oct. 2004)."},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/215399.215419"}],"container-title":["Communications of the ACM"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1506409.1506431","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/1506409.1506431","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T13:29:40Z","timestamp":1750253380000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1506409.1506431"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2009,5]]},"references-count":19,"journal-issue":{"issue":"5","published-print":{"date-parts":[[2009,5]]}},"alternative-id":["10.1145\/1506409.1506431"],"URL":"https:\/\/doi.org\/10.1145\/1506409.1506431","relation":{},"ISSN":["0001-0782","1557-7317"],"issn-type":[{"type":"print","value":"0001-0782"},{"type":"electronic","value":"1557-7317"}],"subject":[],"published":{"date-parts":[[2009,5]]},"assertion":[{"value":"2009-05-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}