Domanda

Qual è il modo migliore per eseguire il multithread nel linguaggio C?Voglio qualcosa che sia molto efficiente e non divori la CPU.Grazie.

È stato utile?

Soluzione

Il modo corretto (standard) per farlo su C e Windows è con __beginthreadex.

Di solito è preferibile alla chiamata Crea discussione direttamente poiché CreateThread non avvia il supporto del runtime C per il thread.Pertanto, se crei un thread utilizzando CreateThread e chiami una funzione CRT, possono/accaderanno cose brutte.

Tieni presente che __beginthreadex chiama CreateThread internamente, ma esegue altre operazioni dietro le quinte.

Altri suggerimenti

Se utilizzi una piattaforma basata su UNIX (Linux o Mac OS X), la soluzione migliore è Discussioni POSIX.Sono il modo multipiattaforma standard per eseguire il multithread in un ambiente POSIX.Possono essere utilizzati anche in Windows, ma probabilmente esistono soluzioni migliori (più native) per quella piattaforma.

La tua domanda è un po' generale per rispondere in modo efficace.Potresti esaminare cose come:

CreateThread nell'SDK di Windows

potenziamento::thread

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top