G‘afarov, A. F. Galimyanov parallel hisobiyotlar qo'llanma Qozon
Download 1.46 Mb.
|
ParVychGafGal (1)
- Bu sahifa navigatsiya:
- ForEach
- Parallel halqalarni bajarish
Parallel ForEach Loop
Parallel ForEach tsikli parallel versiyani taqdim etadi standart ketma-ket foreach tsikli. Har bir iteratsiya jarayonlari kollektsiyadan bitta element. Biroq, pastadirning parallel tabiati shuni anglatadi turli protsessorlarda bir vaqtning o'zida bir nechta iteratsiya ishlashi mumkin yoki protsessor yadrolari. Loopning parallel versiyasi statik ForEach usulidan foydalanadi parallel sinf . Ushbu usulning juda ko'p yuklangan versiyalari mavjud. Eng oddiy ikkita dalilni oladi. Birinchisi - ob'ektlar to'plami, ro'yxatga kiritilishi. Bu har qanday to'plam bo'lishi mumkin IEnumerable 73 Machine Translated by Google Ikkinchi parametr delegatdir, odatda lambda ifodasi sifatida ifodalanadi, har biri uchun qilinadigan harakatni belgilaydi to'plamdagi element. Delegat parametri to'plamdagi elementni o'z ichiga oladi, iteratsiya paytida qayta ishlanishi kerak. E'tibor bering, tsiklning tanasi endi bayonotning tanasi hisoblanadi lambda va to'plam usulning birinchi parametriga o'tkaziladi. Parallel.ForEach(Enumerable.Range(1, 10), i => { Console.WriteLine("{0} - {1}", i, GetTotal()); }); Parallel halqalarni bajarish C# tomonidan taqdim etilgan barcha standart tsikllar , ya'ni foreach tsikllari va while yordamida loopdan erta chiqish imkonini beradi buzish buyrug'i . Ushbu bayonotga duch kelganda, tsikl to'xtaydi. darhol, qolgan iteratsiyalar bekor qilinadi va dastur tsikldan keyingi ko'rsatma bilan davom etadi. Bu holatlarda foydalidir tsiklni davom ettirish samarasiz bo'lganda. Misol uchun, agar siz to'plamni takrorlayotgan bo'lsangiz ma'lum bir elementni qidirish uchun qiymatlar, qachon tsikldan chiqishingiz mumkin element topildi. Parallel halqalar bilan ishlayotganingizda, undan chiqish oson emas, ketma-ket tsikllarda bo'lgani kabi. Chunki tsiklning bir nechta takrorlanishi mumkin parallel ravishda bajarilishi, bitta protsessorda bir iteratsiyadan chiqish ishlayotgan boshqa iteratsiyalar bilan sinxronlashtirilishi kerak boshqa yadrolar. Agar parallel operatsiyalar to'xtatilgan bo'lsa, bu mumkin ma'lumotlar mos kelmaydigan holatda qoladi, shuning uchun boshqa iteratsiyalar ishlashda davom etadi. Siz qila oladigan birinchi muammo Encounter - bu bilan ishlatiladigan break buyrug'i Buning parallel versiyalari uchun ketma-ket tsikllar mavjud emas 74 Machine Translated by Google usuli. Parallel aylanishlar tufayli uzilish buyrug'i mavjud emas statik sinf usullari bilan ta'minlanadi Parallel, tilning bir qismi sifatida emas C#. Tanaffus buyrug'i faqat C# kalit so'zi bilan ishlaydi C# tsikllari uchun parallel bo'lmagan. Parallel halqalarning iteratsiyasini muvofiqlashtirish, shu jumladan chiqish bu ko'chadan kerak bo'lganda foydalanishimiz kerak Download 1.46 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling