Guardando oltre la roba nuova filettatura in C++ 11 per vedere come facilmente si associa a pthreads, ho notato la sezione curiosi nella zona thread
costruttore:In C++ 11, qual è il punto di una discussione che "non rappresenta un thread di esecuzione"?
filo();
Effetti: Costruisce un oggetto thread che non rappresenta un thread di esecuzione.
Post-condizione: get_id() == id()
Produce: Niente.
In altre parole, il costruttore di default per un thread in realtà non sembra creare un filo. Ovviamente, crea un thread oggetto, ma come è esattamente utile se non c'è alcun codice di supporto per questo? C'è un altro modo in cui un "thread di esecuzione" può essere collegato a quell'oggetto, ad esempio thrd.start()
o qualcosa di simile?
C++ 11 è spaventare voi e me, sia a questo punto, per fortuna sono uno sviluppatore del kernel ora quindi gli standard non mi cambiano più :) –
Penso che significano che il costruttore di thread non crea un thread vero, non chiama il sistema operativo, non alloca lo stack/altre risorse e in genere non crea un thread interrotto. Penso che questo sia a posto così le persone saprebbero che non stanno sprecando nulla creando il thread prima di avviarlo (a parte l'archiviazione di alcuni flags). – Dani
@Jesus Ramos: il kernel ha paura delle modifiche standard? Se ricordo correttamente ogni nuovo processore rompe qualcosa nel kernel o aggiunge una funzionalità che richiede un sacco di riscrittura da implementare. – Dani