115) Primitivlar uchun sinxronlangan blokdan foydalana olamizmi? 118) Ipning ustuvorligini qanday o'zgartirish yoki ipning ustuvorligini qanday o'rnatish kerak? Hovuzda teng ustuvorliklarga ega bo'lgan iplar mavjud bo'lganda, qaysi ip birinchi bo'lib bajarilishiga kafolat berilmaydi.
Bu qaysi ish zarrachasini bajarish kerakligi mavzu rejalashtiruvchisiga bog'liq. Rejalashtiruvchi quyidagi amallardan
birini bajarishi mumkin:
121) Yiv sinfidagi yield() usulini tushuntiring? Imzo:
Mavzu.NORM_PRIORITY=5;
}
2) qo'shilish ()
2) Oddiy misol usullari
Java'dagi har bir mavzu 1 dan 10 gacha bo'lgan ustuvorliklarga ega. Odatiy bo'yicha
ustuvorlik 5 (Thread.NORM_PRIORITY). Maksimal ustuvorlik 10 va minimal 1 bo'ladi. Thread klassi xususiyatlarni
aniqlash uchun quyidagi konstantalarni (statik yakuniy o'zgaruvchilar) belgilaydi.
final int getPriority()
Thread sinfida ipning ustuvorligini belgilash va ipning ustuvorligini olish usulini olish uchun belgilangan usul mavjud.
1)
Thread sinfida ipning bajarilishini oldini oluvchi uchta usul mavjud.
Yield() usuli joriy ish zarrachasini kutish holatida bo'lgan teng ustuvorlikdagi qolgan iplarga imkoniyat berib, ishlaydigan
holatdan boshqariladigan holatga o'tishga imkon beradi. yield() joriy ish zarrachasini ma'lum vaqt davomida uyqu holatiga
keltiradi.Joriy ishlaydigan ipni ishga tushiriladigan holatdan ishlaydigan holatga o'tkazishga kafolat yo'q. Hammasi
mavzu rejalashtiruvchisiga bog'liq, u hech narsaga kafolat bermaydi.
Kutishda bir nechta iplar mavjud bo'lganda, ish zarrachalarining ustuvorliklari qaysi ipni ishga tushirishni aniqlaydi.
Java
dasturlash tilida har bir mavzu ustuvorlikka ega. Tarmoq o'zining asosiy ipining ustuvorligini meros qilib oladi. Odatiy bo'lib,
ipning normal ustuvorligi 5 ga teng. Mavzuni rejalashtiruvchisi har bir ipni ishga tushirishga ruxsat berish uchun mavzu
ustuvorliklaridan foydalanadi. Mavzuni rejalashtiruvchi birinchi navbatda yuqoriroq mavzularni ishga tushiradi.
Ammo u quyidagi usullarni bir vaqtning o'zida bajarishi mumkin: