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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
VoltDeMar
16 / 16 / 0
Регистрация: 05.06.2012
Сообщений: 1,015
#1

Самый простой способ реализации двух параллельных потоков - C++

07.07.2015, 13:44. Просмотров 390. Ответов 7
Метки нет (Все метки)

Здравствуйте.
Покажите самый простой способ реализовать два параллельных вычисления при помощи потоков.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.07.2015, 13:44     Самый простой способ реализации двух параллельных потоков
Посмотрите здесь:
Самый простой способ создать таблицу C++
Самый простой способ конвертации целого числа в строку C++
C++ Самый быстрый способ решения задачи a+b
C++ самый короткий способ открыть файл
C++ Многопоточный парсер наилучшая структура и способ реализации
C++ Способ сокрытия данных и реализации класса от клиента
C++ Есть ли более правильный и элегантный способ реализации функции?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
S_el
2089 / 1596 / 305
Регистрация: 15.12.2013
Сообщений: 6,418
07.07.2015, 13:47     Самый простой способ реализации двух параллельных потоков #2
VoltDeMar, с помощью чего вам надо реализовать эти вычисления?
Croessmah
Модератор
Эксперт CЭксперт С++
12979 / 7291 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
07.07.2015, 13:49     Самый простой способ реализации двух параллельных потоков #3
std::thread
sashatref
75 / 75 / 27
Регистрация: 21.05.2015
Сообщений: 257
Завершенные тесты: 1
07.07.2015, 13:51     Самый простой способ реализации двух параллельных потоков #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
#include <Windows.h>
#include <conio.h>
#include <iostream>
#include <process.h>
 
void threadFunc(void *p)
{
    for (int i = 0; i < 100; i++)
    {
        std::cout << i << "\n";
        Sleep(100);
    }
}
 
int main(int argc, char** argv)
{
    _beginthread(threadFunc, 0, NULL);
 
    for (int i = 0; i < 100; i++)
    {
        std::cout << i << "\n";
        Sleep(200);
    }
 
 
    _getch();
    return 0;
}
VoltDeMar
16 / 16 / 0
Регистрация: 05.06.2012
Сообщений: 1,015
07.07.2015, 14:08  [ТС]     Самый простой способ реализации двух параллельных потоков #5
Существуют ли лямбда выражения?
sashatref
75 / 75 / 27
Регистрация: 21.05.2015
Сообщений: 257
Завершенные тесты: 1
07.07.2015, 14:12     Самый простой способ реализации двух параллельных потоков #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
VoltDeMar, можно и лямбда
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int main(int argc, char** argv)
{
    _beginthread([](LPVOID)
    {
        for (int i = 0; i < 100; i++)
        {
            std::cout << i << "\n";
            Sleep(100);
        }
    }, 0, NULL);
 
    for (int i = 0; i < 100; i++)
    {
        std::cout << i << "\n";
        Sleep(200);
    }
 
 
    _getch();
    return 0;
}
Kastaneda
07.07.2015, 14:22
  #7

Не по теме:

Цитата Сообщение от VoltDeMar Посмотреть сообщение
Существуют ли лямбда выражения?
Да, я их видел

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.07.2015, 14:24     Самый простой способ реализации двух параллельных потоков
Еще ссылки по теме:
C++ Считать квадратную матрицу. Какой самый быстрый способ это сделать?
C++ Memory shift или самый быстрый способ перемещения блока памяти
C++ Какой самый универсальный способ считать UTF-8 текст на кириллице из файла?
Самый быстрый способ посчитать сумма элементов матрицы, находящихся в матрице C++
Нужны задачи для новичка или способ реализации кода C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Croessmah
Модератор
Эксперт CЭксперт С++
12979 / 7291 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
07.07.2015, 14:24     Самый простой способ реализации двух параллельных потоков #8
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
#include <iostream>
#include <sstream>
 
#include <thread>
 
 
int main()
{
    std::cout.sync_with_stdio(true) ;
 
 
    std::thread th1 (
        []
        {
            std::stringstream ss ;
            for ( int i = 0 ; i < 10 ; ++i )
            {
                ss << "second thread (" << i <<")\n" ;
                std::cout << ss.str() ;
                ss.str("") ;
                ss.clear() ;
            }
        }
    ) ;
 
    std::stringstream ss ;
    for ( int i = 0 ; i < 10 ; ++i )
    {
        ss << "first thread (" << i <<")\n" ;
        std::cout << ss.str() ;
        ss.str("") ;
        ss.clear() ;
    }
    if ( th1.joinable() )
        th1.join() ;
}
http://rextester.com/FQYC20076

Добавлено через 1 минуту

Не по теме:

Цитата Сообщение от Kastaneda Посмотреть сообщение
Да, я их видел
Я только слухи слышал, что они существуют, а ты их видел?
Я всегда верил в их существование

Yandex
Объявления
07.07.2015, 14:24     Самый простой способ реализации двух параллельных потоков
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru