Process va thread farqi nima?
Assalamu Alaykum, Nodejsning ichiga kirib o'rganayotganda process va threadlar degan atamalarga duch keldim ,va ular nimaligi nimaga kerakligi haqida izlanib bugungi maqoladagi fikrlarga keldim. Bugungi mavzu dasturlash tiliga bog'lanmagan bo'lib va faqat Operatsion sistemaga taaluqli. Qani boshladik …
Ma'lumot
Process — bu qaysidir dasturiy taminotning komputer ichida bajarilayotgan jarayoni.
Bu nima degani masalan siz word dasturini ishga tushurdingiz bu komputerda word processni yaratadi va siz qilgan ishlar uning ichida amalga oshadi.Processlar kamida bitta(main thread)yoki odatda bir necha threadlardan tashkil topgan bo`ladi.
Thread — bu process ichidagi element bo'lib dasturni haqiqatdan ishlashiga ya’ni siz buyurgan amallarni natijaga aylantirishga yordam beradi.
Processlar bir biri bilan xotira ulashmaydi va bu agar bir process ishdan chiqsa yoki xato ishlashni boshlasa boshqa processlarga ta'sir qilmaydi . Process thread natijalarini boshqaradi (ularga umumiy xotira beradi) . Threadlar bir biri bilan xotira ulashadi va agarda birortasi noto'g'ri ishlashni boshlasa hammasiga ta'sir qiladi.

Xo`sh kompyuterimiz qanday qilib bir necha dasturlarni bir vaqtda ishlata oladi ?
Biz bir vaqtda kompyuterda bir necha dasturlarni ishlatamiz bunda kompyuter bularni qanday boshqaradi? Buning uchun bizga scheduler yordam beradi. Scheduler processdagi har bir threadga ishlashi uchun keraklicha (teng emas) vaqt berishga bir necha har xil algoritmlardan foydalanadi. Buning yordamida biz 4 corelik computerda ham har bir coreda 1 ta thread ishlata olishimizga qaramay(hozirda 2 ta ishlatish mumkin) ko'plar dasturlarni ishalata olamiz. Bu holat context switching deyiladi .Ya’ni 1 ta coredagi threadlar vaqt o'tishi bilan almashinadi bular ketma-ketlik shaklida bo'lmaydi muhumliligiga qarab o'sha thread oldinroq ishga tushuriladi.

Xulosa
Ikkalasidan birini tanlashda ushbu narsalarni hisobga olish kerak, processni yaratish threaddan ko'ra qiyinroq va qo'shimcha joy talab qiladi va ular alohida bo'lgani uchun processlar orasida almashinuv threaddan ko'ra ko'proq narsa talab qiladi. Threadlar umumiy xotiradan foydalanadi almashinuv osonroq ammo Processda IPC bilan qilish mumkin ,