- Mastering C++ Multithreading
- Maya Posch
- 155字
- 2021-07-15 17:34:01
Hardware
The simplest hardware-based implementation on a uniprocessor (single processor core), non-SMT system is to disable interrupts, and thus, prevent the task from being changed. More commonly, a so-called busy-wait principle is employed. This is the basic principle behind a mutex--due to how the processor fetches data, only one task can obtain and read/write an atomic value in the shared memory, meaning, a variable sized the same (or smaller) as the CPU's registers. This is further detailed in Chapter 8, Atomic Operations - Working with the Hardware.
When our code tries to lock a mutex, what this does is read the value of such an atomic section of memory, and try to set it to its locked value. Since this is a single operation, only one task can change the value at any given time. Other tasks will have to wait until they can gain access in this busy-wait cycle, as shown in this diagram:

- 數(shù)據(jù)科學實戰(zhàn)手冊(R+Python)
- 密碼學原理與Java實現(xiàn)
- Objective-C應用開發(fā)全程實錄
- Access 數(shù)據(jù)庫應用教程
- Functional Kotlin
- Advanced Oracle PL/SQL Developer's Guide(Second Edition)
- 微服務從小白到專家:Spring Cloud和Kubernetes實戰(zhàn)
- C語言程序設計與應用(第2版)
- UI設計基礎培訓教程(全彩版)
- Deep Learning for Natural Language Processing
- PHP+MySQL Web應用開發(fā)教程
- Elasticsearch搜索引擎構建入門與實戰(zhàn)
- Moodle 3.x Developer's Guide
- Python人工智能項目實戰(zhàn)
- Mastering Vim