Windows 2000da oqimlar
Yuqorida ta’kidlab o’tilganidek, Windows tizimlarida ko’p oqimlilikning “birga/bir” modeli tatbiq qilingan. Har bir oqim quyidagilarni o’zida saqlaydi:
· oqimning identifikatori (thread id);
· registrlar to’plami;
· tizimli va foydalanuvchi protseduralari uchun alohida steklar;
· oqimning lokal ma’lumotlari uchun xotira maydoni (thread-local storage – TLS).
Linux da oqimlar
Linux tizimida oqimlar threads emas tasks (topshiriqlar) deyiladi. Oqimlar clone() tizimli chaqiruvida hosil qilinadi. Ushbu tizim chaqiruvi qism vazifasini ota-vazifa (jarayoni) bilan bir xil manzil maydonini bo'lishishiga imkon beradi.
Javada oqimlar
Yuqorida ta'kidlab o'tilganidek, Java til va asosiy kutubxona darajalarida multithreadingni qo'llab-quvvatlaydigan birinchi dasturiy ta'minot ishlab chiqish platformasi. Java-dagi oqimlarni quyidagi usullar bilan yaratish mumkin:
· Thread sinfining kengaytmasi sifatida
· Runnable interfeysini amalga oshiradigan sinflar sifatida, unda yagona bitta run usuli mavjud - oqimning bajariladigan qismi.
Java dagi oqimlar JVMda boshqariladi. Oqimlar guruhini hosil qilish va shunday guruhlar ierarxiyasini yaratish mumkin.
Java dagi oqimlarning mumkin bo’lgan holatlari 11-rasmda tasvirlangan. OT dagi kabi oqimlar holati Java da ham bir xil bo’lib, yangi holati, keyin-bajarilayotgan holat, wait, sleep turidagi usullar chaqiruvida oqimlar kutish holatiga o’tadi, run usulining yakunlanishi natijasida oqim tugallanish holatiga o’tadi.
11-rasm. Java oqimlar holati.
Do'stlaringiz bilan baham: |