Witam,
mam program w którym po ekranie <ort>roszaja </ort>się jakies obiekty - każdy z obiektów jest jednym wątkiem. Kiedy obiekty się spotkają to ma się cos ort!. To kiedy się spotkają sprawdzam na podstawie współrzędnych ich położenia. Współrzędne te przechowuję w globalnej tablicy, aby kazdy wątek mógł sprawdzić gdzie się znajdują pozostałe.
Fragment kodu (procedure) spotkania począwszy od sprawdzania czy jakiś wątek jest w pobliżu, aż do odpowiedniego zmodyfikowania tablicy współrzędnych po spotkaniu mam w sekcji krytycznej.
Sedno: ;)
Zastanawiam się jak rozwiązać problem, że mam kilka procedur korzystających z tej globalnej tablicy. Np. kiedy się pojawia nowy watek, to trzeba jego dane dodać do tej tablicy i fajnie by było, gdyby dostep do tej tablicy został zablokowany na tą chwilę. Podobnie jest np. kiedy jakiś watek umiera i usuwam jego dane z tablicy...
Jak to pogodzić?
W róznych kursach/książkach napisane jest, że sekcje krytyczne chronią jakieś "zasoby". Co dokładnie oznaczają "zasoby"- czy to znaczy że można jakoś bezpośrednio blokować dostep do zmiennych, czy też zawsze trzeba to zrobic przez blokowanie kodu/procedur które na nich operują..?