Форум программистов, компьютерный форум CyberForum.ru

Атомарна ли операция присваивания в однопроцессорной машине? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Распечатать ту строку, которая содержит наибольшее количество заданных пользователем знаков пунктуации http://www.cyberforum.ru/cpp-beginners/thread1025831.html
помогите решить пожалуйста Даны две строки, содержащие не более 100 символов. Строки состоят из слов, разделенных пробелами. Распечатать ту строку, которая содержит наибольшее количество заданных пользователем знаков пунктуации (от 1 до 3-х).
C++ Преобразование выражения в ОПЗ Доброго времени суток! Помогите написать комменты к программе, "что за что отвечает и зачем оно нужно". Просто не очень соображаю в этой области, а здать нужно. Спасибо! int findprior (char n){ int a; switch(n){ case '+': a=1; break; case '-': a=1; break; http://www.cyberforum.ru/cpp-beginners/thread1025810.html
не могу задать правильный if C++
#include <stdio.h> #include <stdlib.h> #include <math.h> int main () { const float C=3.7; const int A=7; int D; float B,S,F; printf("Vvedite D,B");
Динамический двумерный массив C++
1.С помощью realloc из массива n*m удалить i-ую строку 2.С помощью realloc из массива n*m добавить после i-ой строки строку, заполненную числом x удаление for(j=i;j<n-1;j++) a=a; delete a; a=(int**)realloc((void *) a,(n-1)*sizeof(int*)); n--; добавление
C++ smart pointer с указателем на new[] http://www.cyberforum.ru/cpp-beginners/thread1025781.html
Как я понимаю, реализация shared_ptr boost или tr1 подразумевает, что в неё будет передан одиночный объект, который будет удален через delete. Есть ли аналог shared_ptr для массива объектов, выделенных через new?
C++ Дана последовательность целых чисел Помогите пожалуйста решить задачу в С++. Дана последовательность целых чисел. Подсчитать количество элементов, не попадающих в заданный интервал. Нужно решить используя одномерный и двумерный массив. подробнее

Показать сообщение отдельно
newbie666
Заблокирован
02.12.2013, 17:55  [ТС]     Атомарна ли операция присваивания в однопроцессорной машине?
Цитата Сообщение от CheshireCat Посмотреть сообщение
А как насчет

C++
1
2
3
4
5
6
7
    18:     int a = 3;
00EAC760 C7 45 E8 03 00 00 00 mov         dword ptr [a],3  
    19:     int b = 5;
00EAC767 C7 45 DC 05 00 00 00 mov         dword ptr [b],5  
    20:     a = b;
00EAC76E 8B 45 DC             mov         eax,dword ptr [b]  
00EAC771 89 45 E8             mov         dword ptr [a],eax
Рассуждаем дальше, тут видно две инструкции. Во время приравнивания а к b сначала копируем значение b в EAX, потом из EAX копируем значение в память в a.
Машинка однопроцессорная и не смотря на наличие нескольких потоков - одновременно может выполнятся только одна инструкция. Тоесть если я из B скопирую значение в EAX, существует вероятность, что после этой команды другой поток скопирует сюда ещё другое значение и только после этого она запишется из EAX в A ?
 
Текущее время: 11:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru