Sardorjon Abduqahhorov " Operatsion tizimlar "


Agar siz ro'yxatga olish bayonotlarini ko'rib chiqsangiz, asosiy bo'lim mavzuni yaratish va  boshlashni ko'rishingiz mumkin


Download 86.6 Kb.
Pdf ko'rish
bet5/11
Sana18.06.2023
Hajmi86.6 Kb.
#1562857
1   2   3   4   5   6   7   8   9   10   11
Bog'liq
6-10-lab

 
Agar siz ro'yxatga olish bayonotlarini ko'rib chiqsangiz, asosiy bo'lim mavzuni yaratish va 
boshlashni ko'rishingiz mumkin: 
 
Mavzuni yaratganingizda, siz unga funktsiyani va ushbu funktsiyaga argumentlarni o'z 
ichiga olgan ro'yxatni o'tkazasiz. Bunday holda, siz Thread-ga thread_function() ni ishga 
tushirishni va uni argument sifatida 1 ni berishni aytasiz. 
Siz mavzular uchun nom sifatida ketma-ket butun sonlardan foydalanasiz. Har bir mavzu 
uchun noyob nomni qaytaradigan threading.get_ident() mavjud, lekin ular odatda qisqa va oson 
o'qilishi mumkin emas. 
thread_function() ning o'zi ko'p ish qilmaydi. U shunchaki ba'zi xabarlarni ular orasida 
time.sleep() bilan qayd qiladi. 
Ushbu dasturni avvalgidek ishga tushirganingizda (yigirmanchi qator izohlangan holda), 
natija quyidagicha ko'rinadi: 


 
Ko'p threadlar bilan ishlash 
Misol kodi hozirgacha faqat ikkita thread bilan ishlagan: asosiy thread va siz thread bilan 
boshlagan. thread ob'ekti. 
Ko'pincha siz bir nechta mavzularni boshlashni va ularni qiziqarli ishlarni qilishni 
xohlaysiz. Keling, buni qilishning qiyinroq usulini ko'rib chiqaylik, keyin siz osonroq usulga 
o'tasiz. 
Bir nechta mavzularni boshlashning qiyinroq usuli bu siz allaqachon bilgan usul: 
 
 
Ushbu kod yuqorida ko'rgan mexanizmdan ipni boshlash, Thread obyektini yaratish va 
keyin .start() ga qo'ng'iroq qilish uchun foydalanadi. Dastur Thread ob'ektlari ro'yxatini saqlaydi, 
shunda u keyinchalik .join() yordamida ularni kutishi mumkin. 


Ushbu kodni bir necha marta ishlatish qiziqarli natijalarga olib kelishi mumkin. Mana mening 
mashinamdan olingan misol: 
 
Agar siz chiqishni diqqat bilan ko'rib chiqsangiz, uchta ipning hammasi siz kutgan tartibda 
boshlanganini ko'rasiz, ammo bu holda ular teskari tartibda tugaydi! Bir nechta yugurish turli xil 
buyurtmalarni keltirib chiqaradi. Mavzularni ishga tushirish tartibi operatsion tizim tomonidan 
belgilanadi va oldindan aytish juda qiyin bo'lishi mumkin. Bu ishdan yugurishgacha o'zgarishi 
mumkin (va ehtimol bo'ladi), shuning uchun siz ish zarralarini ishlatadigan algoritmlarni 
loyihalashda buni bilishingiz kerak. 
Python sizga iplarni muvofiqlashtirish va ularni birgalikda ishlatishga yordam berish uchun 
keyinroq ko'rib chiqiladigan bir nechta ibtidoiy elementlarni beradi. Undan oldin, keling, qanday 
qilib iplar guruhini boshqarishni biroz osonlashtirishni ko'rib chiqaylik. 

Download 86.6 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   10   11




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling