Hvordan implementeres den generelle tællesemafor, der kan tage negative værdier? Den almindelige binære semafor som beskrevet i wrox BLP, giver rigtig funktionalitet, men de negative værdier ses aldrig.
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
Forskellen på en binær og en tælle semafor er, at en binær semafor kan antage to værdier, true/false, on/off, open/closed. Dette medvirker til at kun en enkelt proces kan få lov til at være inden i et stykke kode som som er omkrandset af en binær semafor. Med en tælle semafor har den egenskab af man kan tillade et antal processer at tilgå det samme stykke kode, med en begrænsning på hvor mange der er tilladt. Normalt initialiserer man en tællesemafor til +3 (eller -3), hvis man tillader 3 processer at på en gang. Hver gang en proces kommer forbi semaforen, tæller man semaforen 1 ned, hhv. op (alt efter om man starter med negative eller positive værdier). Når semaforen er 0 blokkerer den de processer som ønsker tilgang. I det der bliver signaleret til tællesemaforen, bliver en af de ventende processer aktiveret.
Jeg ved ikke om det hjælper eller om du vil vide hvordan man laver en tællesemafor af en binær semafor.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.