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

Запуск метода класса в новом потоке - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Компилить программу сразу из CMD http://www.cyberforum.ru/cpp/thread1412034.html
Приветствую. У меня такая задача, собрать необходимую библиотеку для С++, которая бы позволила компилить программу сразу из CMD при обращении к ней. Прошу задать вектор framework'и не...
C++ Отслеживание изменений файлов на компьютере Здравствуйте. Прошу помощи, задача написать программу отката, т.е. как функция восстановления windows только написать на с++, подскажите как вообще это можно сделать? какие функции нужно использовать... http://www.cyberforum.ru/cpp/thread1410716.html
Проект Navit C++
Подскажите, как можно вытащить проект из http://sourceforge.net/p/navit/code/HEAD/tree/trunk/navit/ так что бы его потом можно было открыть компилятором каким-нибудь, скомпилировать и запустить?
N-граммы и perplexity C++
Считать из файла обучающую выборку из N предложений (предложения могут быть представлены в произвольном формате). Считать словарь из другого файла (формат произвольный, в словаре должны быть...
C++ Автоматизация настройки локальной групповой политики http://www.cyberforum.ru/cpp/thread1408672.html
хочу сделать программу, которая бы применяла нужные настройки в локальной групповой политикe, возможно ли это?а если можно, то как?
C++ Получить html сайта Доброго времени суток. Наткнулся на эту статейку http://www.cyberforum.ru/blogs/131347/blog608.html Стало довольно интересно узнать подробнее. какие инклуды надо подключить, чтобы это работало?... подробнее

Показать сообщение отдельно
hoggy
Нарушитель
6564 / 2745 / 473
Регистрация: 15.11.2014
Сообщений: 6,084
Завершенные тесты: 1
04.04.2015, 19:54
Цитата Сообщение от hiphone Посмотреть сообщение
есть класс, в нём функция - необходимо вызвать эту функцию в нескольких потоках, возможно ли это?
да, конечно:

http://rextester.com/HEH14824



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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <iostream>
#include <thread>  
#include <mutex>
 
 
//--- глобальный мутекс используется 
// для обеспечения эксклюзивного доступа к std::cout
struct PCout
{
    static std::mutex& Mutex()
    {
        static std::mutex mut;
        return mut;
    }
};
 
#define thread_cout(msg)\
    PCout::Mutex().lock(), msg, PCout::Mutex().unlock()
 
//---------------------------------------------------------- 
//----------------------------------------------------------
//----------------------------------------------------------
 
 
 
struct some
{
    //--- метод будет запущен в разных потоках
    void foo()
    {
        // потоко-безопасный вывод данных в std::сout
        thread_cout( 
            std::cout<<"[thread] id = " <<  std::this_thread::get_id() << std::endl
        );
    }
};
 
 
int main() 
{
 
    // --- объекты, методы которых хотим запускать в разных потоках
    some obj1, obj2;
  
    // --- запускаем методы в разных потоках
    std::thread first([&obj1](){ obj1.foo(); }); 
    std::thread second([&obj2](){ obj2.foo(); }); 
    
    
    //--- ждем завершения работы потоков
    first.join();  
    second.join(); 
 
 
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru