Patrząc na nowego gwintowania rzeczy w C++ 11, aby zobaczyć, jak łatwo to mapuje pthreads, zauważam ciekawy rozdział w dziedzinie thread
Konstruktor:W C++ 11, jaki jest sens wątku, który "nie reprezentuje wątku wykonania"?
wątku();
Efekty: Konstruuje obiekt wątku, który nie reprezentuje wątku wykonania.
Postcondition: get_id() == id()
Rzuty: nic.
Innymi słowy, konstruktor domyślny dla wątku faktycznie nie wydają się tworzyć nitki. Oczywiście tworzy obiekt wątku ,, ale jak dokładnie jest to przydatne, jeśli nie ma dla niego kodu wstecznego? Czy istnieje inny sposób, w jaki "wątek wykonania" może być dołączony do tego obiektu, np. thrd.start()
lub coś podobnego?
C++ 11 straszenia ciebie i mnie zarówno w tym momencie, na szczęście jestem teraz deweloperem jądra, więc standardy już mnie nie zmieniają :) –
Myślę, że to znaczy, że konstruktor wątku nie tworzy aktualnego wątku, nie wywołuje systemu operacyjnego, nie przydziela stosu/inne zasoby i generalnie nie tworzy zatrzymanego wątku. Myślę, że to jest na miejscu, aby ludzie wiedzieli, że nie marnują niczego, tworząc wątek przed jego uruchomieniem (poza przechowywaniem flag). – Dani
@Jesus Ramos: kernel dev przestraszony od standardowych zmian? Jeśli dobrze pamiętam, każdy nowy procesor rozbija coś w jądrze lub dodaje funkcję, która wymaga wiele przeróbek do implementacji. – Dani