---
_id: '6001'
abstract:
- lang: eng
  text: "The concurrent memory reclamation problem is that of devising a way for a
    deallocating thread to verify that no other concurrent threads hold references
    to a memory block being deallocated. To date, in the absence of automatic garbage
    collection, there is no satisfactory solution to this problem; existing tracking
    methods like hazard pointers, reference counters, or epoch-based techniques like
    RCU are either prohibitively expensive or require significant programming expertise
    to the extent that implementing them efficiently can be worthy of a publication.
    None of the existing techniques are automatic or even semi-automated.\r\nIn this
    article, we take a new approach to concurrent memory reclamation. Instead of manually
    tracking access to memory locations as done in techniques like hazard pointers,
    or restricting shared accesses to specific epoch boundaries as in RCU, our algorithm,
    called ThreadScan, leverages operating system signaling to automatically detect
    which memory locations are being accessed by concurrent threads.\r\nInitial empirical
    evidence shows that ThreadScan scales surprisingly well and requires negligible
    programming effort beyond the standard use of Malloc and Free."
article_number: '18'
author:
- first_name: Dan-Adrian
  full_name: Alistarh, Dan-Adrian
  id: 4A899BFC-F248-11E8-B48F-1D18A9856A87
  last_name: Alistarh
  orcid: 0000-0003-3650-940X
- first_name: William
  full_name: Leiserson, William
  last_name: Leiserson
- first_name: Alexander
  full_name: Matveev, Alexander
  last_name: Matveev
- first_name: Nir
  full_name: Shavit, Nir
  last_name: Shavit
citation:
  ama: 'Alistarh D-A, Leiserson W, Matveev A, Shavit N. ThreadScan: Automatic and
    scalable memory reclamation. <i>ACM Transactions on Parallel Computing</i>. 2018;4(4).
    doi:<a href="https://doi.org/10.1145/3201897">10.1145/3201897</a>'
  apa: 'Alistarh, D.-A., Leiserson, W., Matveev, A., &#38; Shavit, N. (2018). ThreadScan:
    Automatic and scalable memory reclamation. <i>ACM Transactions on Parallel Computing</i>.
    Association for Computing Machinery. <a href="https://doi.org/10.1145/3201897">https://doi.org/10.1145/3201897</a>'
  chicago: 'Alistarh, Dan-Adrian, William Leiserson, Alexander Matveev, and Nir Shavit.
    “ThreadScan: Automatic and Scalable Memory Reclamation.” <i>ACM Transactions on
    Parallel Computing</i>. Association for Computing Machinery, 2018. <a href="https://doi.org/10.1145/3201897">https://doi.org/10.1145/3201897</a>.'
  ieee: 'D.-A. Alistarh, W. Leiserson, A. Matveev, and N. Shavit, “ThreadScan: Automatic
    and scalable memory reclamation,” <i>ACM Transactions on Parallel Computing</i>,
    vol. 4, no. 4. Association for Computing Machinery, 2018.'
  ista: 'Alistarh D-A, Leiserson W, Matveev A, Shavit N. 2018. ThreadScan: Automatic
    and scalable memory reclamation. ACM Transactions on Parallel Computing. 4(4),
    18.'
  mla: 'Alistarh, Dan-Adrian, et al. “ThreadScan: Automatic and Scalable Memory Reclamation.”
    <i>ACM Transactions on Parallel Computing</i>, vol. 4, no. 4, 18, Association
    for Computing Machinery, 2018, doi:<a href="https://doi.org/10.1145/3201897">10.1145/3201897</a>.'
  short: D.-A. Alistarh, W. Leiserson, A. Matveev, N. Shavit, ACM Transactions on
    Parallel Computing 4 (2018).
date_created: 2019-02-14T13:24:11Z
date_published: 2018-09-01T00:00:00Z
date_updated: 2023-02-23T13:17:54Z
day: '01'
department:
- _id: DaAl
doi: 10.1145/3201897
intvolume: '         4'
issue: '4'
language:
- iso: eng
month: '09'
oa_version: None
publication: ACM Transactions on Parallel Computing
publication_identifier:
  issn:
  - 2329-4949
publication_status: published
publisher: Association for Computing Machinery
quality_controlled: '1'
related_material:
  record:
  - id: '779'
    relation: earlier_version
    status: public
scopus_import: 1
status: public
title: 'ThreadScan: Automatic and scalable memory reclamation'
type: journal_article
user_id: 3E5EF7F0-F248-11E8-B48F-1D18A9856A87
volume: 4
year: '2018'
...
