Domanda

Stavo leggendo questa pagina informativa su Verde Filo (Wikipedia) e mi chiedo: che cosa altri sistemi di programmazione si basano su "processi verdi" accanto Erlang?

Modifica : "filo verde = Processo Verde"

Processo Green sulla base

  • Erlang
  • Inferno

filo verde basato

  • Vai

processo nativo basato

  • C, C ++

Aggiornamento : Nessuno ha risposto alla domanda direttamente e così ho accettato una risposta che mi ha fornito ulteriori informazioni per quanto riguarda il Processi verdi , in generale

.
È stato utile?

Soluzione

Per quanto riguarda l'intero "filo verde" come un nome, vedere commenti su questo posta :

  

Più seriamente, sono sorpreso di vederti usando un termine dal campo Java, invece di qualcosa di meno jargony tipo "user-space threading cooperativa"; bravo ragazzo Peter van der Linden spiega l'origine del termine:

     

Quando Java 1,0 uscito prima su Solaris, ma non ha utilizzato il nativo Solaris biblioteca libthread.so per supportare le discussioni. Invece ha usato il supporto filo di runtime che era stato scritto in Java per un nome in codice precedente progetto "Green". Quella libreria di thread è venuto per essere conosciuta come "fili verdi".

Vorrei che potessimo usare la terminologia da sistemi operativi, invece, ad esempio, spazio utente vs programmazione del kernel di fili. Dopo tutto, è una distinzione livello di sistema operativo. Il nome "filo verde" è solo la storia di Java.

Altri suggerimenti

quanto mi risulta, questi "processi verdi" sono in realtà sostanzialmente diversa da fili verdi. La mancanza di risultati stato condiviso dalla progettazione del linguaggio, non da qualsiasi technolgical o grande differenza concettuale. Erlang semplicemente:

  • Non ha alcun tipo di variabili globali che sarebbe accessibile da più processi
  • Consente la comunicazione tra i processi solo attraverso messaggi espliciti
  • parametri
  • copie in modo implicito messaggio (il grande svantaggio di questa tecnica)

Quindi, non c'è alcun modo per due processi di accedere alla stessa memoria, anche se potrebbe hanno condiviso la memoria virtuale a livello di sistema operativo (che immagino rende Erlang più facile da implementare su architetture che non hanno le discussioni a livello di sistema operativo ).

Java li ha usati fino ad 1.2 .. poi si sono resi conto che avere un filo più leggero che è prevista per due volte non è stato così efficiente.

Ora, c'è anche Rust (vedi rust-lang.org), che dispone di un modulo per la N:. Discussioni M e uno per thread del kernel

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