Похожие чаты

Yes, but they don't tell how is being volatile variable

changed on deeper level.

When we change non-volatile variable A, we read it to CPU cache, then apply changes and flush back to RAM (or not)

When we read volatile variable, we request actual value directly from RAM and don't use cached version. But how do we write to it (change) ? Consider there is volatile int A and a thread incrementing it, how will it do it? Will it perform three steps (reading to cache - changing - writing back immediatly) or just will change it in the RAM without reading it somewhere?

1 ответов

3 просмотра

You should never worry about what the hardware is doing when you're handling volatile. As a programmer, you view it as software guarantees on variable read and write. You're using all the wrong terms for fetching an address. HDD is involved, RAM is involved, tier cache is involved, hardware buffers are involved. To properly deal with multithreading, you only need to worry about the guarantees the programming language exhibits. There are some best practices, but that's still all software.

Похожие вопросы

Обсуждают сегодня

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
63
Добрый день, не подскажите, если в OC-V3 поменять страндартную директорию /storage/ на /storage2/ - не будет сильно много проблем ?
Max Dubovsky
32
Хотел бы спросить у знающих, правильную ли я выбрал книгу для начала изучения ассемблера Юрова В.И ? Или есть более лучшие книги для начала обучения?
Botsman
25
Conversation at a festival with a non-crpto person (not a normie by any stretch, though): * person: tell me about crypto, me: ok, the original idea is p2p sound money for the...
molecular#123 🐓
25
Книга Юрова В.И пойдёт для обучения?
Botsman
24
Люди добрые, помогите с идеями, потому что свои закончились. У клиента падает софтина в момент инициализации модуля OtlEventMonitor на RegisterWindowMessage('Gp/OtlTaskEvents/...
Михаил Усков
7
$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
> Примечательно, что новый владелец удаляет из GitHub любые жалобы, указывающие на подозрительную активность или смену владельца, и, видимо, рассчитывает на то, что пользовате...
Alex Sherbakov
2
Today, DENT achieved a significant step forward in DENTX adoption 🥳 Getting DENTX and starting staking is much easier: DENTX is available on Uniswap! Everyone can swap their ...
Thomas
3
I bought some PHA tokens on Kucoin, which is the best wallet to store and easy to use?
AMR
19
Карта сайта