|
Bajarilishi kerak bo'lgan vazifa
|
bet | 37/64 | Sana | 13.05.2024 | Hajmi | 183,36 Kb. | | #230077 |
Bog'liq Системное программирование, практикаBajarilishi kerak bo'lgan vazifa:
Ilovada multithreadingni amalga oshiring.
Amalga oshirish tartibi:
Dasturda ko'p qirrali ishlash bir necha usul bilan amalga oshirilishi mumkin.
Vaqti-vaqti bilan chaqiriladigan protsedurani belgilash uchun tizim taymeridan bevosita foydalanish. Ushbu usul "Taymerdan foydalanish" ma'ruzasida muhokama qilindi. Bu preemptive multitaskingning odatiy vakili. Ushbu usulning afzalliklari dasturning funktsiyani chaqirish davrini o'rnatishi va o'zgartirishi mumkinligini o'z ichiga oladi.
Tanlangan oynaga sinxron xabarlarni yuborishni tashkil qilish uchun tizim taymeridan foydalanish (tashkil etish tartibi “Taymerdan foydalanish” ma’ruzasida tasvirlangan). Ushbu usul yordamida preemptiv bo'lmagan multitasking amalga oshiriladi. Afzallik - xabarlarni yuborishning o'zgaruvchan chastotasi. Kamchilik - sinxron xabarlarning tabiati taymerdan xabarlarning kelishi davrining qat'iy bajarilishini kafolatlamaydi.
Iplarni yaratish. Bu usul asosiy dastur jarayoniga parallel ravishda ishlaydigan ip protsedurasini aniqlashni o'z ichiga oladi. Ipning bajarilishini tugatish momenti ip protsedurasining o'zi tomonidan boshqariladi.
CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)Thread1,¶ms,0,&iThread);
Birinchi parametr ish zarrachasi uchun xavfsizlik atributlarini belgilaydi. Agar u NULL bo'lsa, u holda bu mavzuni bolalar jarayonlari ishlatib bo'lmaydi.
Ikkinchi parametr ipning boshlang'ich manzilini (aslida ip protsedurasining nomini) belgilaydi, masalan:
DWORD WINAPI Thread1 (PVOID pvoid)
{
// Oqimli matn
}
Uchinchi parametr - yaratilgan ipga parametr sifatida uzatiladigan butun son (PVOID pvoid). Bunday holda, bu parametr ba'zi ma'lumotlar strukturasiga ko'rsatgichdir. Shunday qilib, asosiy jarayon kerakli ma'lumotlarni ipga o'tkazishga qodir.
To'rtinchi parametr qo'shimcha ip yaratish bayroqlarini belgilaydi. Agar bu parametr nolga teng bo'lsa, ip darhol yaratiladi.
Oxirgi parametr ip identifikatori qaytariladigan o'zgaruvchining manzili.
|
| |