Dronton2
Full Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата: модель памяти, раз это вам так важно, можно условно считать черным ящиком | Вы меня неправильно поняли. Модель памяти в языке программирования - не то, как память выделяется/освобождается или как данные размещаются в куче, а то, как разные потоки совместно используют разделяемые между ними данные. Это атомарность, happens-before, работа с кэшем процессора, критические секции и описание того, что гарантирует комилятор в этом плане программисту. Добавлено: Цитата: я правильно понимаю, что мы ведем речь об атрибуте [volatile] ? | volatile, как я понимаю, принципиально не оптимизируется и не помещается ни в регистры, ни в кэш. А вот другие переменные, которые используются в критических секциях? Один поток записал переменную (в кэш?). Другой поток на другом ядре - прочитал эту же переменную, но откуда - из своего кэша? Цитата: ну не совсем в произвольном порядке | согласен. Не совсем в произвольном. Но порядок выполнения может меняться, например, от наличия данных в кэше. |