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

Потокобезопасен ли префиксный инкремент/декремент? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Помогите написать программу в С++. Найти наибольшую клику в заданном орграфе, используя алгоритм нахождения независимых множеств http://www.cyberforum.ru/cpp-beginners/thread518226.html
Клика – полный подграф неориентированного графа. Другими словами, клика графа есть подмножество его вершин, такое, что между каждой парой вершин этого подмножества существует ребро и, кроме того, это подмножество не принадлежит никакому большому подмножеству с тем же свойством. Подграф графа — граф, содержащий некое подмножество вершин данного графа и некое подмножество инцидентных им рёбер....
C++ Удалить из списка всех неуспевающих студентов (имеющих двойки) Ребята, всем привет. Помогите, пожалуйста! Есть задание : Создать структуру с именем Student с полями: фамилия, имя, номер группы, успеваемость (массив из пяти элементов). Сформировать двусвязный список. Удалить из списка всех неуспевающих студентов (имеющих двойки). Вывести измененный список. Проблема состоит в удалении.. Я понимаю, что надо создать условие, если оно будет выполняться, то... http://www.cyberforum.ru/cpp-beginners/thread518225.html
C++ Сума четных елементов и т.д.
Здравствуйте, нужно сделать такое задание: 1) нужно создать числовой файл из случайных чисел 2) организовать его просмотр 3) найти сумму четных, не четных, положительных, и отрицательных елементов. 1 и 2 я сделал. #include <iostream.h> #include <conio.h> #include <stdio.h> #include <stdlib.h>
Посоветуйте литературу для MFC проектов C++ 2010 C++
Посоветуйте литературу на которой можно разобрать MFC. А то преподаватель задал л.р. на MFC или CLR и вся группа ничего не знает. Я создал проект в С++ 2010 и там столько всего понаписано, я даже не знаю где и что прописывать для создания хотя бы кнопки.
C++ Многопоточность http://www.cyberforum.ru/cpp-beginners/thread518216.html
Здравствуйте. Подскажите пожалуйста как лучше всего организовать многопоточность? Программа должна обрабатывать строки из файла. вариант1 Сейчас пробую загружать файл в вектор, делить на части и каждый поток запускаеться со своей частью. Работает крайне медленно если размер файла более 5Мб. Вариант2 Не делить файл на части, сразу запускать потоки, каждый поток со своей строкой и ждать...
C++ шаблон класса списка Уважаемые программисты! помогите пожалуйста с шаблоном класса списка вот код: template <class T> class ListClass { private: struct Node { T Value; Node* next; }; Node* first; //первый элемент Node *current; //последний элемент подробнее

Показать сообщение отдельно
Damaks
18 / 10 / 1
Регистрация: 02.09.2010
Сообщений: 235

Потокобезопасен ли префиксный инкремент/декремент? - C++

13.03.2012, 22:05. Просмотров 1204. Ответов 10
Метки (Все метки)

Потокобезопасен ли префиксный инкремент/декремент?
Например такой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// Объявляем глобальную переменную
uint64_t i=0;
 
// Тут множество потоков thread:
thread {
 
    while(1) {
        // Тут какое-то ожидание
        sleep();
        if(ххх1) ++i; // Увеличиваем если условие ххх1 верно
        if(ххх2) --i; // Уменьшаем если условие ххх2 верно
    }
}
 
 
int main(int argc, char *argv[]) {
    // Запускаем множество потоков thread 
 
    while(х<n) {
        run thread x;
    }
 
    while(1) {
        // Тут какое-то ожидание
        sleep();
        if(ххх1) ++i; // Увеличиваем если условие ххх1 верно
        printf("Текущий результат: %i\r", i);
    }
}
Вот приблизительно такая структура программы. Переменную i могут инкрементировать и декрементировать сразу множество потоков.
Вопросы:
Потокобезопасно ли это, или в любой момент я могу получить в i неверное значение?
Если нет, то как с наиминьшими затратами сделать операцию потокобезопасной?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru