Разлика између Мутека и Семафоре

Мутек вс Семапхоре

Мутек је аналоган једном кључу собе. Особа која држи кључ који је аналоган нити, једини је који може да уђе у собу. Особа која има приступ тада ће морати да преда кључ следећој особи у реду. Стога се мутекс може ослободити само нит која га стекне.

Мутек се обично користи за серијски приступ приступу одељку кода повратника "" неке врсте кода који не може да се изврши одједном више нити. У одсек је дозвољен само један конац. То присиљава остале нити у реду да чекају. Пре него што нит добије приступ, мораће сачекати да нит пређе до одељка.

Користећи исту аналогију у мутеку, семафори су број сличних кључева који могу приступити истом броју соба са сличним бравама. Семафор или вредност броја семафора зависиће од броја људи (нити) који улазе или излазе из собе. Ако постоји 5 соба и све су заузете, тада је број семафора једнак нули. Ако двојица напусте собу, тада је број два и два тастера се дају наредним двама у реду.

Уз то речено, семафори се могу истовремено сигнализирати било којим нити или поступком и идеални су за апликације које захтевају синхронизацију. Ипак, семафори се користе за ефикасно ограничавање броја истодобних корисника заједничког ресурса на основу максималног броја семафора.

У основи, мутекс се може сматрати семафором који има вредност један.

Декремент и прираштај семафора зависе од тога да ли нити траже приступ заједничком ресурсу или напуштају одељак.

У теорији, мутек и (бинарни) семафори су семантички слични. Имплементација мутекса може се обавити семафорима и тако је обрнуто. Међутим, у практичном смислу оне могу бити мало другачије.

Мутекси су намијењени само за међусобно искључивање, а бинарни семафори ће се користити за међусобно искључивање и обавјештавање о догађајима. Иако су врло слични у погледу имплементације и опште семантике, користе се различито.

Резиме:

1. Мутек се обично користи за сериализацију приступа заједничком ресурсу, док семафор представља број истодобних приступа.

2. Мутек је попут семафора са бројем један.
3. Мутек омогућава приступ само једном нити док семафори могу истовремено сигнализирати било којим нити или процесом.

4. Семафоре су идеалне за синхронизацију и често се користе за обавештавање о догађајима и међусобно искључење док се мутек примењује само за међусобно искључивање.