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

Вызывть метод одного потока из другого потока - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Задано натуральное число N. Для каждого из чисел от 1 до N требуется найти количество его делителей http://www.cyberforum.ru/cpp-beginners/thread1115771.html
Задано натуральное число N. Для каждого из чисел от 1 до N требуется найти количество его делителей. Исходные данные число N от 1 до 1 млн Результат N чисел через пробел - количества делителей каждого из чисел от 1 до N Пример
C++ Есть n-значное число нужно сложить сложить все его цифры Как такое реализовать? http://www.cyberforum.ru/cpp-beginners/thread1115765.html
Вычислить количество отрицательных элементов массива C++
в одновременном массиве ,состоящем из n вещественных элементов ,1)вычислить количество отрицательных элементов массива 2)сумму модулей элементов массива,расположенных после минимального по модулю элемента заменить все отрицательные элементы массива их квадратами и упорядочить элементы массива по возрастанию С++
C++ Статический самовызов
Всем привет. Представьте такую ситуацию: У меня в программе есть статический класс connections, который хранит коллекцию элементов типа connection. В некоторой функции класса connection возможна ситуация вызова своего же метода с помощью connections, а также побуждение класса connections произвести уничтожение объекта connection побудившего это действие. Скажите, пожалуйста, правильный ли...
C++ Cin cout http://www.cyberforum.ru/cpp-beginners/thread1115722.html
записать через сin cout printf ("a=", i); scanf ("%f", &a);
C++ CGI и C++ какие книги есть по этой теме,и вообще зачем с++ для веб,и как к всему этому может относиться json?? подробнее

Показать сообщение отдельно
aLarman
636 / 557 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
11.03.2014, 13:19     Вызывть метод одного потока из другого потока
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
condition_variable var;
std::mutex mut;
class A
{
void method1()//этот метод будет выполнятся в 1ом потоке
{
//что то делаем
var.notify_one();
}
void method2()
{
std::unique_lock<std::mutex> loker(mut);
var.wait(loker);// вот тут поток 1 зависнет и будет ждать вызова notify_one
//что то делаем
}
}
int main()
{//это первый поток
A object;
std::thread thread1(&A::method1, std:ref(object));//создаем поток 2
object.method2();//вызов метода из 1го потока но он не выполнится пока 1ый поток не закончится
return 0;
}
если я Вас правильно понял

Добавлено через 1 минуту
или еще проще....что то я загнул в условными переменными
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class A
{
void method1()//этот метод будет выполнятся в 1ом потоке
{
//что то делаем
}
void method2()
{
 
//что то делаем
}
}
int main()
{//это первый поток
A object;
std::thread thread1(&A::method1, std:ref(object));//создаем поток 2
thread1.join();//ждем завершение потока 2(выхода из ф-ции method1)
object.method2();
return 0;
}
Добавлено через 3 минуты
11ый стандарт, можно тоже самое с boost, заменить std:: на boost::
 
Текущее время: 03:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru