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

Многопоточность, выход из бесконечного цикла c++11 - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вычислите сумму элементов целочисленной матрицы, ниже побочной диагонали http://www.cyberforum.ru/cpp-beginners/thread1198329.html
Дана целочисленная матрица. Вычислите сумму элементов матрицы, ниже побочной диагонали. Выведите на экран исходный массив и результат вычисления.
C++ Ввести массив из 10-ти элементов. Вычислить сумму элементов с нечетными номерами Вводиться массив из 10-ти элементов. Вывести эти элементы на экран. Вычислите сумму элементов с нечетными номерами. Выведите адрес начала массива, адрес и значение результата или сообщение об отсутствие этих элементов. http://www.cyberforum.ru/cpp-beginners/thread1198325.html
Запись\чтение из файла C++
#include <iostream> #include <string> #include <locale.h> #include <list> using namespace std; class A { private: int price; string name;
C++ Найти среднее геометрическое нечетных элементов массива
Как в C++ Найти cреднее геометрическое нечетных элементов массива?
C++ Пожалуйста подскажите, что делает программа? http://www.cyberforum.ru/cpp-beginners/thread1198290.html
public: A(); A(const A &); ~A(); friend A operator+(A a, B b); friend void display(A a); }; class B { int *arr;
C++ Шаблонный класс, не работает с френд функцией Переделал программу под шаблонный класс, все методы работают справно когда задаешь тип. Да вот только проблема с френд функцией. Светит ошибку на выделение динамической памяти в мейне Sample*aa=new int ; Вот код: #include <iostream> #include <math.h> using namespace std; template <class Data> class Sample //øàáëîííûé êëàññ âûáîðêà { int n; подробнее

Показать сообщение отдельно
Psilon
Master of Orion
Эксперт .NET
5882 / 4779 / 633
Регистрация: 10.07.2011
Сообщений: 14,399
Записей в блоге: 5
Завершенные тесты: 4
05.06.2014, 13:21     Многопоточность, выход из бесконечного цикла c++11
Ребят, я в плюсах не оч шарю, но так вроде должно работать без проблем?..
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
30
31
32
33
34
35
36
37
class SomeClass
{
    CRITICAL_SECTION gCS;
    volatile bool _stopCycle;
public:
    SomeClass()
    {
        InitializeCriticalSection(&gCS);
    }
 
    ~SomeClass()
    {
        DeleteCriticalSection(&gCS);
    }
 
    void inifiniteWhile()   {
        if (_stopCycle)
        {
            EnterCriticalSection(&gCS);
            _stopCycle = false;
            LeaveCriticalSection(&gCS);
        }
        while (!_stopCycle)
        {
            cout << "inifiniteWhile" << endl;
        }
    }
 
    void stop() {
        if (!_stopCycle)
        {
            EnterCriticalSection(&gCS);
            _stopCycle = true;
            LeaveCriticalSection(&gCS);
        }
    }
};
Добавлено через 1 минуту
taras atavin, bool как правило является int-ом из-за проблем с выравниванием памяти и прочими прелестями. В лучшем случае он однобайтный. Но однобитных булов вообще не бывает афайк.

Добавлено через 1 минуту
Цитата Сообщение от taras atavin Посмотреть сообщение
Тебе надо не только отключить оптимизацию условия, но и гарантировать синхронизацию с первичным потоком, разделение флага между первичным и вторичным потоком, статичность/глобальность флага, то есть он должен существовать в одном и том же экземпляре для каждого экземпляра использующих его функций и фактическое существование флага в течении всего времени исполнения хотя бы одного потока. То есть флаг должен быть создан при старте первичного потока, так как он заведомо стартует первым и только после этого запускает вторичный, а освобождён при завершении того из двух потоков, который будет фактически завершён позже другого. Решает ли volatile все поставленные задачи?
volatile отвечает только за отсутствие кэширования значения переменной, за его использование как средства синхронизации со ссылкой на стандарты и пр следует отрывать руки.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru