Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
-3 / 7 / 2
Регистрация: 10.11.2008
Сообщений: 776
1

Std::thread::detach()

16.06.2016, 11:09. Просмотров 1388. Ответов 4
Метки нет (Все метки)

Что произойдет, если main - поток завершится раньше чем child.detach()?

Добавлено через 3 минуты
У меня программа просто завершилась и cout << перестал выводить текст в консоль, это точно означает, что поток child завершился? Или просто связано с прекращением работы main?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.06.2016, 11:09
Ответы с готовыми решениями:

Thread::Detach() в c++
Добрый день или что у вас там! По заголовку понятно о чём будет вопрос ,я прочитал достаточно много...

Использование std::function в std::thread
Нужно вызвать function fnc в новом потоке. Как сделать? function &lt;void(vector&lt;char&gt;)&gt; fnc; void...

Ошибка компиляции "no instance of constructor 'std::thread::thread' matches the argument list"
Не могу сообразить почему возникает ошибка. У меня в классе есть метод, который должен работать в...

Boost::thread std::thread
чем отличается boost::thread( ) от std::thread (с++17)? я спрашиваю не о способе реализации...

4
844 / 435 / 110
Регистрация: 06.07.2013
Сообщений: 1,445
16.06.2016, 11:14 2
нужен код программы
может просто программа выполнилась и окно закрылось?
0
-3 / 7 / 2
Регистрация: 10.11.2008
Сообщений: 776
16.06.2016, 13:24  [ТС] 3
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
#include <iostream>
#include <iomanip>
#include <string>
#include <thread>
#include <memory>
 
using namespace std;
 
void proc1(const int num)
{
    int max_i = 50000;
    int i = 0;
    while(i<max_i)
    {
        cout << std::to_string(num);
        ++i;
    }
}
 
void proc2(const int num)
{
    int max_i = 50000;
    int i = 0;
    while(i<max_i)
    {
        cout << std::to_string(num);
        ++i;
    }
}
 
int main()
{
    thread t1(proc1, 5);
    thread t2(proc2, 7);
    t1.detach();
    t2.detach();
 
    return 0;
}
Добавлено через 56 секунд
Цитата Сообщение от Raali Посмотреть сообщение
может просто программа выполнилась и окно закрылось?
Прервалось выполнение, т.е. вывелось пару десятков пятерок и все
0
6909 / 5974 / 2709
Регистрация: 14.04.2014
Сообщений: 25,504
16.06.2016, 13:33 4
Ты неправильно вопрос формулируешь. Основной поток у тебя завершился после detach(). Просто потоки сами по себе не существуют без главного.
0
-3 / 7 / 2
Регистрация: 10.11.2008
Сообщений: 776
16.06.2016, 13:35  [ТС] 5
Но при этом, если вообще убрать detach() потоки выполняются
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.06.2016, 13:35

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Boost::thread vs std::thread
Доброго времени суток, решил углубить свои знания, и решил почитать про потоки, бустовые и те что в...

std::thread
Возник вопрос: как создать массив потоков (точнее, как его инициализировать). То есть, мне нужно...

Многопоточность в C++11. std::thread
Привет всем! использую таким образом многопоточность class A { public: void fun() {...

Std::thread в классе
Всем привет есть код #include&lt;thread&gt; #include&lt;iostream&gt; class SomeClass { public : ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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