Զուգահեռ ForEach-ը համաժամեցվա՞ծ է:
Զուգահեռ ForEach-ը համաժամեցվա՞ծ է:

Video: Զուգահեռ ForEach-ը համաժամեցվա՞ծ է:

Video: Զուգահեռ ForEach-ը համաժամեցվա՞ծ է:
Video: Stream Api vs Foreach vs Iterator [Java Performance Test] 2024, Մայիս
Anonim

Ամբողջ գաղափարը հետևում է Զուգահեռ . Յուրաքանչյուրի համար () այն է, որ դուք ունեք մի շարք թելեր, և յուրաքանչյուր շարանը մշակում է հավաքածուի մի մասը: Ինչպես նկատեցիք, սա չի աշխատում համաժամ - սպասել, որտեղ դուք ցանկանում եք ազատել շարանը տևողության համար համաժամ զանգահարել. Յուրաքանչյուրի համար (), որն աջակցում է ասինխրոն Առաջադրանքը լավ է:

Այս առնչությամբ ինչպե՞ս եք սպասում, որ զուգահեռ նախագիծն ավարտվի:

Պետք չէ առանձնահատուկ բան անել, Զուգահեռ . Foreach () կամք սպասիր մինչև նրա բոլոր ճյուղավորված առաջադրանքները լինեն ամբողջական . Զանգող շղթայից դուք կարող եք այն վերաբերվել որպես մեկ համաժամանակյա հայտարարություն և, օրինակ, փաթաթել այն փորձել/բռնել: Դուք դրա հետ պետք չէ Զուգահեռ.

Նմանապես, արդյոք foreach-ը ասինխրոն է: Դա չէ ասինխրոն . Այն արգելափակում է։ Նրանք, ովքեր առաջին անգամ սովորել են Java-ի, C-ի կամ Python-ի նման լեզու, նախքան JS-ը փորձելը, շփոթության մեջ կմտնեն, երբ կփորձեն կամայական ուշացում կամ API-ի կանչ դնել իրենց հանգույցի մարմնում:

Բացի սրանից, ինչպե՞ս եք զուգահեռաբար շարունակում նախագիծը։

Երբ ձեր հանգույցը փոխարկեցիք ի համար համատեղելի սահմանման Զուգահեռ . Foreach տրամաբանություն, վերջացրիր, որ հայտարարության մարմինը լամբդա դարձրեցիր: Դե, դա գործողություն է, որը կոչվում է Զուգահեռ ֆունկցիան։ Այսպիսով, փոխարինեք շարունակել վերադարձով և ընդմիջում Stop() կամ Break() հայտարարություններով:

Առաջադրանքը WhenAll զուգահեռ է:

-ի դիմումը Երբ Բոլորը վերադարձնում է սինգլ առաջադրանք դա ամբողջական չէ մինչև ամեն անգամ առաջադրանք հավաքածուում ավարտված է. Այն առաջադրանքներ կարծես վազել է զուգահեռ , բայց լրացուցիչ թելեր չեն ստեղծվում։ Այն առաջադրանքներ կարող է լրացնել ցանկացած կարգով:

Խորհուրդ ենք տալիս: