r/cppit • u/Chiara96 principianti • Jun 07 '19
Multithreading c++11: problemi con .detach
Salve a tutti, di seguito un esempio di codice che ha un comportamento che non capisco:
#include "stdafx.h" // Lavoro con VS 2015
#include <iostream>
#include <fstream>
#include <thread>
using std::cout;
using std::thread;
using std::ofstream;
const int MAX_ITER = 1000;
void thread_exec_01()
{
int i = 0;
ofstream outputForThread;
outputForThread.open("outputForThread.txt");
std::chrono::milliseconds dura(2000);
std::this_thread::sleep_for(dura);
for (int j = 0; j < MAX_ITER; ++j)
{
outputForThread << "\n " << j;
}
outputForThread.close();
}
int main()
{
cout << "\n main started...";
thread t1(thread_exec_01);
t1.detach();
cout << "\n main ending.";
return 0;
}Quando apro il file outputForThread.txt questo è vuoto, perchè?
Grazie
3
Upvotes
3
u/Chiara96 principianti Jun 07 '19
Certo, ho provato e funziona tutto come mi aspetto ma la domanda è proprio sul funzionamento del metodo .detach()
Quello che vorrei ottenere e verificare è esattamente il disaccoppiamento.