Ruby on Rails көп агымдуубу?
Ruby on Rails көп агымдуубу?

Video: Ruby on Rails көп агымдуубу?

Video: Ruby on Rails көп агымдуубу?
Video: Жив ли Ruby? / О комьюнити и Рельсы / Всё о Ruby / Интервью с Senior Ruby Developer 2024, Май
Anonim

Phusion Passenger бир эле учурда бир нече суроо-талаптарды аткаруу үчүн процесске негизделген параллелдүүлүктү колдонот, ошондуктан, так айтканда, андай эмес " көп агымдуу , " бирок дагы эле бир убакта. Бул сүйлөшүүдөн Ruby MidWest 2011 алуу боюнча жакшы ойлор бар көп агымдуу Ruby on Rails бара жатат.

Ушундай жол менен, Ruby көп агымды колдойбу?

А көп агымдуу программанын бирден ашык аткарылуучу жиптери бар. Ruby Thread классы менен көп агымдуу программаларды жазууну жеңилдетет. Ruby жиптер сиздин кодуңузда параллелдүүлүккө жетишүүнүн жеңил жана натыйжалуу жолу.

Экинчиден, Ruby бир убактабы? Өзгөчө, Ruby параллелдүүлүк эки тапшырма бири-бирин кайталаган убакыт аралыгында башталып, иштетилип жана аягына чыга турган учур. Бул сөзсүз түрдө экөө тең бир заматта иштеп калат дегенди билдирбейт (мисалы, бир ядролуу машинада бир нече жип).

Ошо сыяктуу эле, Ruby жалгыз жиптүүбү?

Кыска жооп ооба, алар жалгыз жип . Узун жооп - бул көз каранды. JRuby болуп саналат көп агымдуу жана башка java коддору сыяктуу tomcatта иштетсе болот. MRI (демейки рубин ) жана Python экөө тең GIL (Global Interpreter Lock) бар жана ушундай жалгыз жип.

Рубиде Гил барбы?

MRI бар глобалдык котормочу кулпу деп аталган нерсе ( GIL ). Бул аткаруунун айланасында кулпу Ruby код. Бул көп жиптүү контекстте бир гана жип аткара алат дегенди билдирет Ruby каалаган убакта код. The GIL коргоо үчүн бар Ruby маалыматтарды бузушу мүмкүн болгон жарыш шарттарынан ички түзүлүштөр.

Сунушталууда: