Kas Ruby on Rails on mitmelõimeline?
Kas Ruby on Rails on mitmelõimeline?

Video: Kas Ruby on Rails on mitmelõimeline?

Video: Kas Ruby on Rails on mitmelõimeline?
Video: Ruby on Rails by Leila Hofer 2024, November
Anonim

Phusion Passenger kasutab protsessipõhist samaaegsust mõne päringu samaaegseks käsitlemiseks, nii et rangelt võttes ei ole " mitmelõimeline , " kuid on siiski samaaegne. See jutt pärit Rubiin MidWestil 2011 on saamise kohta häid mõtteid mitmelõimeline Ruby on Rails läheb.

Kas Ruby toetab sel viisil mitme lõimega töötlemist?

A mitmelõimeline programmil on rohkem kui üks täitmise lõim. Rubiin muudab keermeklassiga mitme lõimega programmide kirjutamise lihtsaks. Rubiin lõimed on kerge ja tõhus viis koodis samaaegsuse saavutamiseks.

Teiseks, kas Ruby on samaaegne? Eriti, Rubiini samaaegsus on see, kui kaks ülesannet saavad alata, käivitada ja lõpule viia kattuvate ajavahemike jooksul. See ei tähenda aga tingimata, et need mõlemad töötaksid kunagi samal hetkel (nt mitu lõime ühetuumalises masinas).

Samamoodi, kas Ruby on ühe keermega?

Lühike vastus on jah, nad on ühe keermega . Pikk vastus on see, et see sõltub. JRuby on mitmelõimeline ja seda saab käivitada tomcatis nagu muud java koodi. MRI (vaikimisi rubiin ) ja Pythonil on mõlemal GIL (Global Interpreter Lock) ja seega on need olemas ühe keermega.

Kas Rubyl on Gil?

MRI on midagi, mida nimetatakse globaalseks tõlgilukuks ( GIL ). See on lukk hukkamise ümber Rubiin kood. See tähendab, et mitme lõimega kontekstis saab käivitada ainult üks lõime Rubiin kood igal ajal. The GIL kaitseks olemas Rubiin võistlustingimustest pärit sisemised osad, mis võivad andmeid rikkuda.

Soovitan: