U računalnom programiranju semafor je tehnika signalizacije koja koristi posebne varijable unutar računalnog programskog jezika. Ovaj signal se koristi za predstavljanje brojača i izjava istinito-netočno. Upotreba semafora usvojena je u većini softverskih jezika. Prevladava u objektno orijentiranom programiranju uključujući Java®, C# i Smalltalk®.
Semafori se koriste u računalnom programiranju nekoliko desetljeća. Ove tehnike se obično implementiraju u softverskom kodu niske razine. Ovo se obično koristi kao tehnika sinkronizacije za upravljanje okidačima i događajima unutar aplikacije. Varijabla semafora prati se zbog promjena, što signalizira promjenu procesa unutar aplikacije.
Izrada semafora unutar programa čini softver intuitivnijim. Ovaj stil kodiranja programeri softvera smatraju najboljom praksom jer olakšava održavanje koda. Korištenje Booleovih varijabli unutar softverskog programa omogućuje bolji logički tijek. Ovo se može koristiti u petlji toka kako bi se omogućilo da se proces nastavi dok se ne promijeni Booleova zastavica.
Računalno programiranje je vrlo složen logički tok podataka i koraka procesa. Ovaj napor kodiranja zahtijeva korištenje zastavica i brojača za upravljanje logičkim tijekom procesa unutar programa. Korištenje semafora je dobra praksa jer olakšava čitanje koda.
Tajmer je primjer semafora unutar softverskog programa. Većina rutina mjerača vremena potrebna je za dovršenje poslovnih koraka na temelju planiranih zadataka. Rutina timera provjerava interni sat računalnog sustava kako bi odredila kada treba pokrenuti i zaustaviti. Ovo je slično budilici postavljenoj da se upali u određeno vrijeme. Proces tajmera ostaje neaktivan sve dok računalni sat ne dosegne unaprijed definiranu postavku.
Mnogi računalni programi zahtijevaju protuprocese. Ovo je logički tok koji mora dovršiti određeni broj ili iteracije prije završetka. Semafor se obično koristi unutar rutine brojača za predstavljanje potrebnog broja iteracija. Program će izaći iz petlje toka kada se brojač podudara s unaprijed definiranom postavkom iteracije.
Semafori se obično koriste unutar internih procesa računalnih operacijskih sustava. Ovi procesi niske razine potrebni su kako bi se osiguralo da računalo može upravljati višestrukim zadacima. Korištenje zastavica i protulogike je češći u operacijskom sustavu jer je odgovoran za koordinaciju složenih zadataka za više programa unutar računala.