PPmoc
18.09.2014, 23:26:48
Witam. Od dłuższego czasu zastanawiam się jak to wszystko działa po stronie serwera. Na myśli mam akcję wielu użytkowników.
Załóżmy że mam skrypt php, który wykonuje jakieś operację na pliku (edytuje jedną linijkę). Plik ten może być edytowany przez wszystkie osoby, mające dostęp do skryptu php. Jak odbywa się działanie na tym pliku? Czy jeżeli np. kilku użytkowników w tym samym czasie będzie chciało wykonać operację na tym pliku, to czy nie spowoduję to nadpisywania go przez przez innych?
Nie wiem, czy dobrze opisałem problem. Chodzi mi o to, czy istnieje hierarchia dostępu do tego pliku? jak to się odbywa?
Z góry dziękuję za odpowiedź.
SaMi
19.09.2014, 08:04:37
Poczytaj o funkcji
flock(), przyjrzyj się opisowi samej funkcji, natomiast rozwiązanie znajdziesz w komentarzach.
PPmoc
19.09.2014, 15:58:20
Dziękuję za odpowiedź, z tego co wyczytałem to puki plik nie zostanie zamknięty, to nikt inny nie może go czytać. Mi natomiast chodziło o całość serwera, a plik był jedynie przykładem. Chciałem się dowiedzieć jak serwer obsługuje kilku użytkowników wywołujących w jednym momencie jakieś skrypty. Czy tworzy kolejkę i obsługuję po jednej osobie?
by_ikar
19.09.2014, 18:03:17
To zależy co dany skrypt wykonuje. Jeżeli jest to operacja na plikach, to pliki są blokowane a użytkownicy kolejkowanii. podobnie ma się w przypadku baz danych, gdzie w niektórych przypadkach, podczas update/insert cała tabela potrafi być zablokowana.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.