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

Уведомления между потоками - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Когда в ОС используется COM ? http://www.cyberforum.ru/cpp-beginners/thread1506576.html
Для каких действий ОС использует COM технологию ? Всегда ли она используется при исполнении exe файлов?
C++ Где найти все глаголы для ShellExecute ? Здравствуйте. Где и как посмотреть список допустимых глаголов системы? Знаю о существовании страницы в msdn , но функция которую я нашел в интернете и использую использует глагол "runas", которого нет на странице. http://www.cyberforum.ru/cpp-beginners/thread1506564.html
Write some short C or C++ code to generate a segmentation fault C++
Write some short C or C++ code to generate a segmentation fault
Write some short C or C++ code to generate a stack overflow C++
Write some short C or C++ code to generate a stack overflow
C++ Write some short C or C++ code that slowly leaks memory until all the resources are consumed http://www.cyberforum.ru/cpp-beginners/thread1506552.html
сабж :D
C++ Какие существуют типы компилляторной оптимизации? What are some compiler optimizations that you know (ie. loop unrolling, constant folding, etc)? :) подробнее

Показать сообщение отдельно
eagl69
4 / 9 / 1
Регистрация: 12.10.2011
Сообщений: 440
30.07.2015, 08:39  [ТС]     Уведомления между потоками
C++
1
2
3
4
std::mutex m;
std::thread potok (клиент, &m);
potok.detach ();//отсоединение потока
void клиент (std::mutex *m);
В консольном приложении это работает...

Добавлено через 25 минут
В общем если все обернуть в массив то работает...
C++
1
2
3
4
5
6
7
8
9
10
11
12
struct uvedomleniy
{
    std::condition_variable cv_klient;
    std::mutex mutex_klient;
};
 
std::vector<uvedomleniy> uvedomleniy_mob(кол_клиентов);
 
std::thread potok_клиент_моб (клиент_моб, &uvedomleniy_mob);
    potok_клиент_моб.detach ();//отсоединение потока
 
void клиент_моб ( std::vector<uvedomleniy> *uvedomleniy_mob);
Добавлено через 2 минуты
C++
1
2
3
4
(*uvedomleniy_mob)[nomer_strohki].cv_klient.notify_one();//отсылаем уведомление
 
std::unique_lock<std::mutex> lk((*uvedomleniy_mob)[nomer_strohki].mutex_klient);//останавливаем поток до принятия уведомления
(*uvedomleniy_mob)[nomer_strohki].cv_klient.wait(lk, [=]() { return (*база_Kient_mob)[nomer_strohki].статус_клиента[0] == 0; });//проверка пораметра по уведомлению
 
Текущее время: 04:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru