![]() |
![]() |
![]()
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? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
Nie rozumiem, dlaczego jeden procesor miałby być przeszkodą. W jaki sposób pisałeś tego posta, jednocześnie słuchając muzyki, mając otwarty komunikator, edytor kodu i ściągając coś w tle? Twój komputer miał 5 procesorów czy jeden? Wielozadaniowość realizowana jest poprzez szybkie, niezauważalne dla człowieka, przełączenia między poszczególnymi zadaniami realizowane przez system operacyjny. PHP nie jest jakimś magicznie, szczególnie wyróżnionym programem, że w jego przypadku ta zasada nie obowiązuje. Jeśli FastCGI będzie mieć aktualnie pięć procesów PHP odpalonych, to w tym samym czasie mniej więcej może wykonywać się pięć skryptów. Jeśli Apache utworzy pięć wątków do obsługi żądań HTTP wymagających wykonania skryptu PHP, to one też się będą wykonywać równolegle. Nie jest to wprawdzie rzeczywista równoległość, bo w danym momencie wykonywane jest jedno zadanie, ale dzięki tym właśnie przełączeniom proces wykonywania wszystkich pięciu skryptów postępuje jednocześnie.
Co więcej, obecne procesory rzadko kiedy posiadają tylko jeden rdzeń - normą są dwa, a często spotkać już można i cztery. Jeśli system operacyjny przyporządkuje dwa skrypty do różnych rdzeni, będziesz mieć prawdziwą równoległość na jednym procesorze. Tak więc używanie LOCK TABLES zawsze jest zasadne, bo nie żyjemy w czasach systemu CP/M i DOS-a, gdzie naraz mógł być uruchomiony tylko jeden program. A tak w ogóle to lepiej używać transakcji - dają to samo, co blokowanie, wymagają mniej zachodu i w razie wykrzaczenia się skryptu lub bazy w połowie transakcji wszystkie wprowadzone przez nią zmiany są natychmiast cofane. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 08:22 |