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

Использование несколькими потоками одной функции - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Оптимизация кода игры в крестики нолики. http://www.cyberforum.ru/cpp-beginners/thread946452.html
Написал небольшой код буду благодарен если нормальные программисты порекомендуют как его нужно исправить. это игра в крестики нолики 10*10. ниже привожу файлы. Board.cpp #ifndef _Board_ #define _Board_ #include <iostream> #include "board.h" #endif using namespace std;
C++ Имя экземпляра объекта внутри класса на С++ Добрый день. Подскажите, пожалуйста, как узнать имя экземпляра объекта внутри класса на С++ ? В частности, мне надо имя экземпляра объекта печатать на экран. http://www.cyberforum.ru/cpp-beginners/thread946447.html
C++ Разница между С и С++
Если не брать во внимание объекты и классы, то разница состоит только лишь в cin, cout и директивах?
C++ Рекурсивные функции
1. Написать рекурсивную функцию, которая бы вычисляла n-тое число Фибоначчи. 2. Написать рекурсивную функцию которая печатает элементы массива в обратном порядке.
C++ Принципы отладки в MVS 2012 http://www.cyberforum.ru/cpp-beginners/thread946414.html
Привет киберфорумцы! Подскажите пожалуйста, как в режиме отладки путешествовать только по написанному мной коду не, заходя в файлы предоставляемые MVS? А то начинаешь искать ошибку, выставив точку останова, для того, чтобы отследить поведение некоторых переменных внутри функции, тыкаешь Ф11 (чтобы перепрыгнуть из мейн в функцию), а забрасывает в какой-нибудь бесконечный ostream или...
C++ Присвоение значения указателю Как можно, вот так, присваивать указателю значение? Разве, указатель не должен всегда содержать адрес? const char* szString = "Randy"; подробнее

Показать сообщение отдельно
Александр Макед
0 / 0 / 0
Регистрация: 23.03.2013
Сообщений: 22
31.08.2013, 21:07     Использование несколькими потоками одной функции
Есть вот такая функция для =которую выполняют рабочие потоки
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
38
39
DWORD WINAPI ThreadFunc(void *pV)
{   
    Data* pD = (Data*)pV;
    int n, iSleeping(0), MaxCountInConteiner(0);
    n = iGlobal++;
    cout<<"\ntut j:"<<n<<endl<<endl;
 
    for(;;)
    {
        WaitForSingleObject(CreEvent, INFINITE);
        if(pD->Flag == true){
            pD->CountElement = MaxCountInConteiner;
            cout<<"=)threadFUNC="<<n<<endl;
            SetEvent(hArEvent[n]);
            return 0;
        }
        
        if(pD->iDeq.size() < pD->LimitsToEnter){
            ++MaxCountInConteiner;
            pD->iDeq.push_back(n*100);
            
            if(pD->iDeq.front() != n*100)//если добавил не этот поток
            {
                cout<<"aaaaaaaaaa"<<endl;
                --MaxCountInConteiner;
                pD->iDeq.pop_front();
            }
        }
        else
        {
            cout<<"bbbbbbbbbbbb"<<endl;
            pD->iDeq.push_back(n*100);
            pD->iDeq.pop_front();
        }
        cout<<"n="<<n<<endl;
        SetEvent(CreEvent);
        iSleeping = rand()%300;
        Sleep(iSleeping/*/pD->CountThread*/);//если не спать то завершается до вывода статистики
    }
Потоки запускаются из главного потока-предка. который создается и запускается в main.
при длительной работе(множестве вставок/удалений)(потоков 50), вылитает.
Вопрос почему?
И вообще= коректно ли давать множеству потоков одну и ту же рабочую функцию?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 11:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru