Безопасно ли отсоединить поток, а затем позволить ему выйти за пределы области действия (и продолжать работать)?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Безопасно ли отсоединить поток, а затем позволить ему выйти за пределы области действия (и продолжать работать)?

Сообщение Anonymous »

У меня есть следующий код, который, я думаю, работает нормально (простите за глупый/надуманный пример).

Код: Выделить всё

void run_thread()
{
std::thread t([]{
while(true)
{
// keep getting chars... to stop peoples eye's hurting : )
char c = getchar();
}
});

t.detach(); // Detach thread

// thread goes out of scope here - but is it ok because its detached??
}

int main()
{
run_thread();

// Wait here forever
while (true) {;}
}
Но, перечитав, у меня возникли сомнения по этому поводу. Поток t выходит за рамки. Сейчас я не могу вспомнить, безопасно ли это делать после того, как вы вызвали detach()... Я думаю, что да, но, как я уже сказал, меня мучает сомнение. Может ли кто-нибудь подтвердить, хорошая это или плохая практика?

Подробнее здесь: https://stackoverflow.com/questions/505 ... e-it-still
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»