2013-08-31 11 views

risposta

8

Go non ha ancora un programma di pianificazione preventiva, ma uno è planned for 1.2. Quindi no, Go non cambierà contesto durante i calcoli della sola CPU, solo durante I/O (anche la lettura dalla memoria è considerata I/O se non è già in un registro). Puoi leggere alcune discussioni a riguardo in Issue 543 - preemptive scheduling.

+0

Se ho capito bene, chiamare ciò che è descritto nella "pianificazione preventiva" di questi collegamenti è troppo inverosimile. Non è davvero preventivo, è solo che i rendimenti sono messi in più posti, invisibilmente al programmatore. Certo, questo rende il programma più "concorrente", ma è ancora cooperativo. Penso che sia impossibile fare il multitasking preemptive senza usare VM speciali (come Erlang) o senza il supporto diretto del SO (thread del sistema operativo). –

+0

Potresti aggiornare la tua risposta? Ho sentito dire che Go è stato in grado di anticipare le chiamate di funzione per un po 'di tempo, ma non lo so per certo. –

Problemi correlati