Սեմաֆորները անվտանգ են թելերի համար ինչպես բացատրված է javadoc-ում. Հիշողության հետևողականության էֆեկտներ. Գործողություններ շղթայում նախքան «ազատման» մեթոդը կանչելը, օրինակ՝ թողարկումը տեղի է ունենում նախքան գործողությունները, որոնք հետևում են հաջողված «ձեռք բերել» մեթոդ, ինչպիսին է ձեռք բերել մեկ այլ թեմայում: Գործողությունների մեծ մասը java-ի օբյեկտների վրա:
Սեմաֆորները կանխու՞մ են մրցավազքը:
Ոչ, փակման գործողությունները տեղի են ունենում ատոմային: Ամբողջ կողպվածները չեն գործարկվի ատոմային եղանակով: Եվ հիշեք, որ շղթաներն ունեն ընդհանուր հասցե-տարածություն և բոլորը կապված են գործընթացի հետ:
Թելերի օգտագործումն ապահով՞ է:
A MessageService օբյեկտ արդյունավետորեն անփոփոխ է, քանի որ դրա վիճակը չի կարող փոխվել կառուցումից հետո: Հետևաբար, այն անվտանգ է թելի համար: Ավելին, եթե MessageService-ն իրականում փոփոխական էր, բայց մի քանի շղթաները միայն կարդալու հասանելիություն ունեն, այն նույնպես անվտանգ է շղթաների համար:
Արդյո՞ք շարանը ապահով և համաժամանակացված է:
Թելերի անվտանգ միջոց. մեթոդը դառնում է անվտանգ՝ միաժամանակ մի քանի շղթաներով առանց որևէ խնդրի մուտք գործելու համար: համաժամեցված հիմնաբառ «թելերի անվտանգ» հասնելու ուղիներից մեկն է: Բայց հիշեք. Իրականում, քանի դեռ մի քանի շղթաներ փորձում են մուտք գործել համաժամացված մեթոդ, նրանք հետևում են կարգին, ուստի մուտքն ապահով է դառնում:
Արդյո՞ք սեմաֆորներն արդար են:
Ընդհանրապես, սեմաֆորները, որոնք օգտագործվում են ռեսուրսների հասանելիությունը վերահսկելու համար, պետք է սկզբնավորվեն որպես արդար՝ ապահովելու համար, որ ոչ մի շարան չի մնա ռեսուրս մուտք գործելու համար: ՕգտագործելիսՍեմաֆորները համաժամացման կառավարման այլ տեսակների համար, ոչ արդար պատվիրման թողունակության առավելությունները հաճախ գերազանցում են արդարության նկատառումները: