башка тилдерде Node.js жана көп программалык иш-чара-кууп архитектура ортосунда кандай айырма бар?


жооп 1:

Бул иш-чара-куулган жана кодду көп жиптен парадигманын да иш тутуму жүрүшүндө жүргүзүлөт.

жараян бир нече темы иштеп жаткан болсо, бул темалар окуганды жана жазганды иштетип эс (дареги орун) менен бөлүшүү.

JavaScript Node.js жүрүүчүлөргө, жөндөмдүү табиятынан бир айланма деп. Бул ар бир милдети толугу менен ишке ашырылат жана бул милдетти аткаруу учурунда эч кандай башка JavaScript коду учурдагы иш жүргүзүлүп жатат дегенди кепилденет. табигый асинхрондук окуялар (тармак, диск киргизүү / чыгаруу, таймер, башка жабдыктардын жана системасы окуялар) кыймылдаткычы, иштеп чыгуучунун (же callbacks) бул окуялардын JavaScript милдеттери ишке ашырылышы үчүн иш-чара укурук кезек катары катталган тарабынан иштелип чыгат милдеттерди кошот кезекте алдында даяр болуп саналат.

көп парадигманын ичинде эки же андан көп темалар менен катар код аткарылат, бир Нускасы иш учурунда да башка иштетүү өзөгү боюнча жүзөгө ашырылат кодексинин кесимин болушу мүмкүн, анткени бир эле эс даректери же жазуу жүзүндө окуп мүмкүн. бөлүшкөн эс алуу мүмкүнчүлүгүн башкаруу үчүн колдонулган болсо, бул карама-эс абалы боюнча, коду конкреттүү системасы механизмдери (синхрондоштуруу Primitives) эмес, алып келиши мүмкүн.



жооп 2:

Бул жакшы суроо экен: "Бул иш-чара-кууп архитектура Node.j башка тилдерде жана көп программалоо ортосунда кандай айырмачылык бар"

Биз бир аз азайтуу керек.

  • түйүн иш-чара-кууп архитектура

Бул иш-чара-кууп архитектура сыяктуу бездери үчүн гана арналган эмес. B. Tornado (Python), Vertx (Java) АККА (Scala), ReactiveX (бир нече тилдерде).

  • башка тилдерде көп программалоо.

демейки JavaScript нече темы колдоого албайт. Мен жип сыяктуу, ошондой эле иш-аракет кылышыбыз керек, ал желе кызматкерлерди колдоо да болот.

Ошондуктан, бул иш-чара түйүн жана көп коркутуу үчүн гана жеткиликтүү эмес кууп түйүн менен жүргүзүлүшү мүмкүн.

Ошондуктан, эки суроолор болушу мүмкүн: "Бул иш-чара-куулган жана көп Threading ортосунда кандай айырма бар" жана "түйүн жана башка тилдерде (негиздери) ортосунда кандай айырмачылык бар". Мен бул суроого жаман болуп баратса, ал тууралуу кеп болот.

Түйүн жөнүндө атайын нерсе жазуучу жараткан, башкача айтканда, колдонмолорду түзүп жатканда, I / O бөгөттөлгөн качуу. Node коомчулуктун маданият үстүнө эмес бөгөт I / O күчүн жана Build баса белгилеп турат. Сен да көптөгөн үчүнчү жактын китепканаларын таба чалууларды бөгөт жок. иштеп чыгуучу катары Node колдонулган, ал кылдат блокада иш-кодду гана пайда болот деп айтуу кыйын. башка тилдерде бир ишенчээк иштеп мүмкүн кокусунан өтө натыйжасыз блокада деп атаган аткарып жатканда. маалыматтар базасын байланыштуу окууда эле.

Мындан тышкары, анда силер чын эле "параллелизмди" бир нече моделдер жөнүндө көбүрөөк окуп, ар бир моделдин артыкчылыктар да, кемчиликтер да түшүнүү керек. multithreading эмне аныктоо үчүн сыйлык упай ушунчалык көп алгылыктуу болгон.



жооп 3:

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

программа туруктуу бир жиптен илмегинде иштеп жаткан иш-чара-кууп архитектура-жылы (Чын эле түйүн айрым көп коркутуу иштерди аткарган, бирок ал учурда керек тынчсызданбагыла мүмкүн эмес). бир окуя себеп болсо, чакыруу кабат боюнча иш программасы убагында иштелип чыгышы керек.

бул иш-аракет күтүп керек болсо көп архитектура чечеби көбүнчө жаңы жип жасады. Ошентип, бир маалыматтар базасына барып, түп жип же кайрадан бирге аяктоо үчүн бардык зарыл болгон милдеттерди жана чуркоо үчүн зарыл иш-аракеттерди аткарат бир жаңы жип түзөт.

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