b'\n_START_ARTICLE_\nSemaforas (programavimas)\n_START_PARAGRAPH_\nSemaforas \xe2\x80\x93 strukt\xc5\xabra, turinti j\xc4\x85 sukuriant nustatyt\xc4\x85 leidim\xc5\xb3 skai\xc4\x8di\xc5\xb3 vykdymo gijoms dirbti su saugoma duomen\xc5\xb3 strukt\xc5\xabra ar vykdyti saugom\xc4\x85 kodo sekcij\xc4\x85._NEWLINE_Semaforai naudojami, kuomet pageidaujama, jog su tam tikra duomen\xc5\xb3 strukt\xc5\xabra ar kompiuterio \xc4\xafrenginiu nedirbt\xc5\xb3 daugiau nei nurodytas ribotas skai\xc4\x8dius lygiagre\xc4\x8di\xc5\xb3 gij\xc5\xb3._NEWLINE_Kiekviena gija, prie\xc5\xa1 tai darydama, turi gauti i\xc5\xa1 semaforo leidim\xc4\x85 (kviesdama semaforo leidimo pasi\xc4\x97mimo metod\xc4\x85), o baigusi darb\xc4\x85 su saugomu objektu \xe2\x80\x93 leidim\xc4\x85 gr\xc4\x85\xc5\xbeinti (kviesdama leidimo gr\xc4\x85\xc5\xbeinimo metod\xc4\x85). Jei semafore daugiau \xc5\xa1iuo metu leidim\xc5\xb3 neb\xc4\x97ra (jo likusi\xc5\xb3 leidim\xc5\xb3 skaitiklis lygus nuliui), leidimo pra\xc5\xa1anti gija blokuojama kol kokia nors kita gija anks\xc4\x8diau pasiimt\xc4\x85 leidim\xc4\x85 gr\xc4\x85\xc5\xbeins._NEWLINE_Jei semaforas turi tik vien\xc4\x85 leidim\xc4\x85, jo darbas daug nesiskiria nuo u\xc5\xberakto. Ta\xc4\x8diau, skirtingai nuo u\xc5\xberakt\xc5\xb3, semaforai paprastai leid\xc5\xbeia gr\xc4\x85\xc5\xbeinti leidim\xc4\x85 ir ne tai gijai, kuri j\xc4\xaf pasi\xc4\x97m\xc4\x97. Tai gali b\xc5\xabti reikalinga, pavyzd\xc5\xbeiui, i\xc5\xa1sprend\xc5\xbeiant kai kuriuos sinchronizacijos aklaviet\xc4\x97s atvejus. Ta\xc4\x8diau \xc5\xa1iai galimybei reikalingi sinchronizavimo veiksmai gali s\xc4\x85lygoti l\xc4\x97tesn\xc4\xaf darb\xc4\x85 nei naudojant u\xc5\xberaktus._NEWLINE_Skirtingai nuo u\xc5\xberakt\xc5\xb3, semaforai neskirti pakartotinam rakinimui ta pa\xc4\x8dia gija bei atskiriems rakinimams skaitymui bei ra\xc5\xa1ymui._NEWLINE_Kaip ir u\xc5\xberaktas, semaforas gali b\xc5\xabti garbingas (angl. fair) arba ne. Garbingas semaforas pirmiausia suteikia leidim\xc4\x85 tai gijai, kuri jo lauk\xc4\x97 ilgiausiai. Garbingo semaforo kodas yra sud\xc4\x97tingesnis ir vykdomas ilgiau, tod\xc4\x97l naudoti j\xc4\xaf verta ne visada.'