Форум программистов, компьютерный форум 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)? :) подробнее

Показать сообщение отдельно
Ilot
Модератор
Эксперт С++
1820 / 1178 / 232
Регистрация: 16.05.2013
Сообщений: 3,115
Записей в блоге: 5
Завершенные тесты: 1
29.07.2015, 12:03
Используйте условные переменные. На вашем псевдокоде и по одному потоку для блока и сервиса код будет выглядеть вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
std::mutex m;
std::condition_variable cv;
int блок_1(HWND *hWnd, MyStruct* strukt_1)//поток подключения
{   
    prepare_data();//<-готовим данные
    cv.notify_one();
    return 0;
}
 
int сервис_1(HWND *hWnd, MyStruct* strukt_1)//поток подключения
{
    std::unique_lock<std::mutex> lk(m);
    cv.wait(lk, []() { return (*strukt_1).a == 0;});
    do_proccesing(); //<-выполняем, что нужно
    return 0;
}
Что бы более конкретно ответить на вопрос о синхронизации нужно знать больше о том как должны взаимодействовать между собой потоки.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru