Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> 2 skrypty w tym samym czaseie
Black-Berry
post
Post #1





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Zastanawiam sie czy 2 skrypty php mogą zacząć wykonywać się równolegle? Przy jednym procesorze to chyba niemożliwe prawda? A co jeśli serwer jest wieloprocesorowy? Czy wtedy mogą wykonywać się obok siebie?

Czy jeśli nie wykonują się równolegle to po co korzystać z LOCK TABLES?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Zyx
post
Post #2





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

Ostrzeżenie: (0%)
-----


Bez Twojej wiedzy to się tak znowu nie dzieje - skrypt dostaje wtedy stosowną informację i może zareagować (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) . Ogólnie, jeśli tylko jest to możliwe, baza stara się jednak wykonać równolegle dwie transakcje, przy czym one nie widzą nawzajem swoich poczynań, dopóki się nie wykonają do samego końca. W przypadku transakcji masz też możliwość blokowania na poziomie pojedynczych wierszy, a nie całych tabel. Przykładowo, jeśli pobierasz dane zapytaniem SELECT i później na ich podstawie robisz INSERT, to takie dwie transakcje mogą się spokojnie wykonać równolegle, ale mogą dać złe wyniki (np. doda się dwukrotnie to samo). Wtedy możesz do SELECT dodać słowa FOR UPDATE i wtedy dwie transakcje będą mogły wykonać się tylko wtedy, jeśli nie będą operować na tych samych wierszach - w przeciwnym wypadku jedna zaczeka na drugą.

Oczywiście w przypadku sekcji krytycznych można zablokować całą tabelę przed wejściem w transakcję, nie ma przeciwko temu żadnych przeciwwskazań - oznacza to, że blokowanie oraz transakcje mogą się uzupełniać, jeśli zachodzi potrzeba.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 12.10.2025 - 01:35