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

Std::thread::detach() - C++

Восстановить пароль Регистрация
 
Knjagskij
-4 / 6 / 0
Регистрация: 10.11.2008
Сообщений: 772
Завершенные тесты: 1
16.06.2016, 11:09     Std::thread::detach() #1
Что произойдет, если main - поток завершится раньше чем child.detach()?

Добавлено через 3 минуты
У меня программа просто завершилась и cout << перестал выводить текст в консоль, это точно означает, что поток child завершился? Или просто связано с прекращением работы main?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.06.2016, 11:09     Std::thread::detach()
Посмотрите здесь:

C++ std::thread
Как убить std::thread? C++
Многопоточность в C++11. std::thread C++
C++ Запутался с std::thread в классе
Std::thread приостановка потока C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Raali
572 / 276 / 12
Регистрация: 06.07.2013
Сообщений: 917
Завершенные тесты: 1
16.06.2016, 11:14     Std::thread::detach() #2
нужен код программы
может просто программа выполнилась и окно закрылось?
Knjagskij
-4 / 6 / 0
Регистрация: 10.11.2008
Сообщений: 772
Завершенные тесты: 1
16.06.2016, 13:24  [ТС]     Std::thread::detach() #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 Посмотреть сообщение
может просто программа выполнилась и окно закрылось?
Прервалось выполнение, т.е. вывелось пару десятков пятерок и все
nmcf
4278 / 3709 / 1246
Регистрация: 14.04.2014
Сообщений: 14,503
16.06.2016, 13:33     Std::thread::detach() #4
Ты неправильно вопрос формулируешь. Основной поток у тебя завершился после detach(). Просто потоки сами по себе не существуют без главного.
Knjagskij
-4 / 6 / 0
Регистрация: 10.11.2008
Сообщений: 772
Завершенные тесты: 1
16.06.2016, 13:35  [ТС]     Std::thread::detach() #5
Но при этом, если вообще убрать detach() потоки выполняются
Yandex
Объявления
16.06.2016, 13:35     Std::thread::detach()
Ответ Создать тему
Опции темы

Текущее время: 05:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru