Արդյո՞ք սեմալիստները անվտանգ են:

Արդյո՞ք սեմալիստները անվտանգ են:
Արդյո՞ք սեմալիստները անվտանգ են:
Anonim

Սեմաֆորները անվտանգ են թելերի համար ինչպես բացատրված է javadoc-ում. Հիշողության հետևողականության էֆեկտներ. Գործողություններ շղթայում նախքան «ազատման» մեթոդը կանչելը, օրինակ՝ թողարկումը տեղի է ունենում նախքան գործողությունները, որոնք հետևում են հաջողված «ձեռք բերել» մեթոդ, ինչպիսին է ձեռք բերել մեկ այլ թեմայում: Գործողությունների մեծ մասը java-ի օբյեկտների վրա:

Սեմաֆորները կանխու՞մ են մրցավազքը:

Ոչ, փակման գործողությունները տեղի են ունենում ատոմային: Ամբողջ կողպվածները չեն գործարկվի ատոմային եղանակով: Եվ հիշեք, որ շղթաներն ունեն ընդհանուր հասցե-տարածություն և բոլորը կապված են գործընթացի հետ:

Թելերի օգտագործումն ապահով՞ է:

A MessageService օբյեկտ արդյունավետորեն անփոփոխ է, քանի որ դրա վիճակը չի կարող փոխվել կառուցումից հետո: Հետևաբար, այն անվտանգ է թելի համար: Ավելին, եթե MessageService-ն իրականում փոփոխական էր, բայց մի քանի շղթաները միայն կարդալու հասանելիություն ունեն, այն նույնպես անվտանգ է շղթաների համար:

Արդյո՞ք շարանը ապահով և համաժամանակացված է:

Թելերի անվտանգ միջոց. մեթոդը դառնում է անվտանգ՝ միաժամանակ մի քանի շղթաներով առանց որևէ խնդրի մուտք գործելու համար: համաժամեցված հիմնաբառ «թելերի անվտանգ» հասնելու ուղիներից մեկն է: Բայց հիշեք. Իրականում, քանի դեռ մի քանի շղթաներ փորձում են մուտք գործել համաժամացված մեթոդ, նրանք հետևում են կարգին, ուստի մուտքն ապահով է դառնում:

Արդյո՞ք սեմաֆորներն արդար են:

Ընդհանրապես, սեմաֆորները, որոնք օգտագործվում են ռեսուրսների հասանելիությունը վերահսկելու համար, պետք է սկզբնավորվեն որպես արդար՝ ապահովելու համար, որ ոչ մի շարան չի մնա ռեսուրս մուտք գործելու համար: ՕգտագործելիսՍեմաֆորները համաժամացման կառավարման այլ տեսակների համար, ոչ արդար պատվիրման թողունակության առավելությունները հաճախ գերազանցում են արդարության նկատառումները:

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