Domanda

In quali lingue è possibile implementare l'hyper-threading? Fa solo parte di sistemi orientati agli oggetti o può essere implementato in C?

Grazie.

È stato utile?

Soluzione

Qualsiasi lingua e runtime che supportano i thread supporteranno l'hyperthreading.

L'hyper-threading è un modo di multiplexare una CPU tra più thread: esiste solo una CPU reale ma è visibile al sistema operativo come due CPU, e quindi due thread possono essere programmati su di essa. Qualsiasi stallo nella CPU su un thread (come attesa in memoria, lunghe operazioni FPU, ecc.), Consente alla CPU di eseguire il codice dall'altro thread.

Ulteriori informazioni sull'hyper-threading su Wikipedia .

Altri suggerimenti

L'hyperthreading è per lo più lo stesso di avere più processori in un sistema. Anche se la tua lingua non supporta i thread, è comunque possibile fare in modo che il tuo programma generi un'altra copia di se stesso o spawn i processi di lavoro che (se i sistemi operativi lo supportano) saranno bilanciati rispetto ai processori disponibili.

Devi cercare il supporto dei thread per la tua lingua, ma fai attenzione che i thread possono facilmente complicare il tuo programma e potrebbero causare bug difficili da trovare poiché il codice può essere eseguito in modo asincrono.

Quindi la risposta alla tua domanda è 'probabilmente, ma dipende'.

Per quanto riguarda l'altra domanda, puoi facilmente implementare nuovamente più thread in C a seconda del tempo di esecuzione e del supporto del compilatore. Ad esempio, le estensioni OpenMP http://en.wikipedia.org/wiki/OpenMP potrebbero essere utili per te.

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