Come si fa la gestione dei thread in C ++?

7

Utilizziamo pthread per la gestione dei thread nei sistemi basati su C. in generale il pthread è compilabile dal compilatore C ++ (come g ++). Tuttavia, quali sono i modi migliori di astrazione per i thread in C ++?

Inoltre, per fare in modo che qualsiasi sistema funzioni in un sistema multi-thread, è anche importante rendere i thread sicuri. Quali sono le librerie standard che richiedono alternative (installazioni) per essere thread-safe o non sono sicure per gli ambienti multi-thread?

I puntatori intelligenti, i modelli richiedono misure speciali per renderlo sicuro?

Quali sono le migliori pratiche per la gestione dei thread in C ++?

    
posta Dipan Mehta 15.11.2011 - 15:15
fonte

2 risposte

14

Se usi C ++ 11, il threading fa parte della libreria e dei componenti standard dove è logico che i puntatori intelligenti siano sicuri per i thread (in genere le raccolte richiedono il blocco da soli).

Se stai utilizzando Boost, dai un'occhiata a boost.thread . È la base per ciò che è stato standardizzato in C ++ 11 (la maggior parte delle novità in C ++ 11 proviene da boost).

    
risposta data 15.11.2011 - 15:22
fonte
5

Oltre a ciò che Jan Hudec ha scritto, se vuoi utilizzare un livello ancora più alto di astrazione (che può essere una buona idea) dai un'occhiata a Intel Threading Building Blocks . Microsoft ha Concurrency Runtime che è anche eccellente ma specifico per MS.

    
risposta data 15.11.2011 - 17:22
fonte

Leggi altre domande sui tag