Արդյո՞ք C++-ն ունի բազմաթելեր:
Արդյո՞ք C++-ն ունի բազմաթելեր:

Video: Արդյո՞ք C++-ն ունի բազմաթելեր:

Video: Արդյո՞ք C++-ն ունի բազմաթելեր:
Video: Ահա թե ինչու Ամերիկան չի արտահանում F-22 Raptor-ը 2024, Մայիս
Anonim

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

Հետագայում, կարելի է նաև հարցնել, արդյոք C++-ը միայնակ թելերով է:

Multithreading-ը C++-ում Multithreading-ի աջակցությունը ներդրվել է C+11-ում: C++ 11 վերացրեց այդ ամենը և տվեց մեզ std: թել . Այն թել դասերը և հարակից գործառույթները սահմանվում են թել վերնագրի ֆայլ: std:: թել է թել դաս, որը ներկայացնում է ա մեկ թեմա C++-ում։

Բացի վերևից, Python-ը միայնակ թելերով է, թե բազմաթելային: Կարճ պատասխանն է՝ այո, նրանք են միայնակ թելերով . JRuby-ն է բազմաթելային և կարող է գործարկվել tomcat-ում, ինչպես մյուս java կոդը: MRI (կանխադրված ռուբին) և Պիթոն երկուսն էլ ունեն GIL (Global Interpreter Lock) և, հետևաբար, ունեն միայնակ թելերով.

Նաև հարց է ծագում, արդյոք C++ քարտեզի շարանը անվտանգ է:

2 Պատասխաններ. C++11 ստանդարտը երաշխավորում է, որ կոնտեյներների հասանելիությունը const մեթոդով է ապահով տարբերից թելեր (այսինքն, երկուսն էլ օգտագործում են const մեթոդները): Այսպիսով, կարճ պատասխանը ապահով , այնքան ժամանակ, որքան մյուսը թել ուղղակիորեն չի խառնվում այդ կոնկրետ մուտքի հետ քարտեզ.

Կարո՞ղ են մի քանի թելեր կանչել նույն գործառույթը:

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