In primo luogo, non scrivere off C++ 11. Il lavoro di concorrenza per i nuovi standard è stato fatto sotto l'ombrello C++ 11, quindi importato in C11 con l'obiettivo esplicito di essere compatibile. Mentre ci sono alcune differenze sintattiche (ad esempio a causa della semplice C che non ha modelli o sovraccarico di funzioni), semanticamente sono identiche per design. Per "prove" di questo, è possibile controllare i documenti del WG14. E.g:
e riferimenti ivi. Più può essere trovato alla Open Std Website
Ora, alle tue domande:
Qual è il modello di sequenziamento di memoria migliorato?
La risposta ovvia è che è stato modificato per tenere conto di più thread e di come interagiscono. Per una risposta leggermente più lunga, vedere C++11 introduced a standardized memory model. What does it mean? And how is it going to affect C++ programming? già menzionato nei commenti. Per una comprensione approfondita, una risposta StackOverflow non è forse il posto giusto (anche meno una domanda con diverse sottoquestioni!). Ma per fortuna Hans Boehm maintains a very good page with interesting links for further reading (ancora una volta, tenere a mente che il C++ 11 modelli di memoria C11 e sono semanticamente identico)
spero non mi manca qualcosa?
Insieme al modello di memoria, l'elenco sembra coprire le aggiunte di concorrenza in C11. Per altre modifiche, wikipedia has a list; in cima alla mia testa non riesco a trovare nulla che la lista di wikipedia abbia mancato.
Da oggi la libreria standard offre di per sé (fornirà) tutte le funzionalità necessarie per Multi-Threading, non ci sarebbe alcun bisogno di POSIX e tali librerie (per il supporto Multi-Threading) in futuro?
Sì, ce ne sarà bisogno. Innanzitutto, nessuno sta riscrivendo tutto il codice esistente che utilizza le varie API di thread esistenti. In secondo luogo, la libreria di thread C (++) 11 sarà/sarà probabilmente implementata come wrapper attorno alle varie librerie di thread nativi; diamine, c'è anche un modo documentato per recuperare un puntatore al thread nativo sottostante, nel caso in cui si debba fare qualcosa oltre a ciò che la libreria di thread C (++) supporta. Pensa alla libreria di thread C (++) 11 più simile a un wrapper portatile, meno comune denominatore attorno alle varie librerie di thread nativi.
Infine, quali compilatori forniscono supporto per le funzioni sopra menzionate? Ci sono riferimenti alle scadenze quando questi saranno supportati? Ricordo per C++ 11 c'era un link per il supporto del compilatore e funzionalità, forse qualcosa di simile?
Non ho visto alcun elenco dettagliato, non sembra esserci più tanto ronzio attorno a C11 rispetto a C++ 11. C'è un breve avviso per il prossimo GCC 4.7 qui: http://gcc.gnu.org/gcc-4.7/changes.html. Per il supporto della concorrenza, è possibile controllare il supporto per la concorrenza nella pagina di stato C++ 11 qui: http://gcc.gnu.org/projects/cxx0x.html. Ci sono anche alcune note sullo stato corrente e i piani per GCC a http://gcc.gnu.org/wiki/Atomic (in base a quella pagina, stdatomic.h è disponibile). Per altri compilatori, c'è una bella lista dello stato di C++ 11 per vari compilatori qui http://www.aristeia.com/C++11/C++11FeatureAvailability.htm. Da questi collegamenti è possibile verificare lo stato del supporto della concorrenza e, supponendo che il fornitore in questione pianifichi di supportare C11, è probabile che il supporto della concorrenza C11 si trovi all'incirca allo stesso livello.
Vedere anche: http://stackoverflow.com/questions/4938258/where-can-i-find-good-solid-documentation-for-the-c0x-synchronization-primiti – bdonlan
@bdonlan: la domanda riguarda il c11 e non C++ 11. Entrambi sono diversi. Entrambi i collegamenti forniti sono per C++ 11 e non c11.duh? –
Sto votando vicino ('duplicato esatto') perché la tua prima domanda (sul modello di sequenziamento) ha già avuto risposta. È difficile rispondere a domande che contengono più domande, perché qualcuno può solo conoscere una parte della tua domanda - la loro risposta non può quindi essere accettata, perché non risponde all'intera domanda e non ci può mai essere una risposta accettata. Si prega di dividere la domanda e rimuovere la parte duplicata esatta (o indicare perché è diversa dalle domande che ho collegato). – bdonlan