mam jakiś kod, który dynamicznie przydziela nowy std::thread
z nagłówka C++ 11 <thread>
, tak:Usunąć std :: thread po wywołaniu join?
std::thread *th = new thread(/* my args */);
Jakiś czas później, wzywam dołączyć:
th->join();
Odkąd dynamicznie przydzielane wątku, czy muszę też zadzwonić pod numer delete th;
, aby zwolnić pamięć? Jeśli tak, czy nadal muszę najpierw zadzwonić pod numer join()
?
Myślę, że tak. Ale dlaczego nie używać shared_ptr, skoro używasz C++ 11? –
Nauczyłem się C++, zanim wyszedł C++ 11 i nadal uczę się o wszystkich nowych rzeczach. Nie myślałem, aby używać shared_ptr :) – bobroxsox
lub lepiej, użyj 'std :: unique_ptr', chyba że naprawdę potrzebujesz współwłasności. Wyrzucenie unikalnego właściciela również wyjaśnia, kto jest odpowiedzialny za dołączenie –