sem_acquire(PHP 3>= 3.0.6, PHP 4) sem_acquire - получает семафор. Описаниеbool sem_acquire (int sem_identifier) Возвращает TRUE при успехе, FALSE при ошибке. sem_acquire() блокирует (если необходимо), пока семафор не сможет быть получен. Процесс попытки получения семафора, который уже был получен, блокирует бесконечно, если получение семафора вызовет превышение значения max_acquire. После обработки запроса любые семафоры, полученные процессом, но не освобождённые явным образом, будут освобождены автоматически и будет сгенерировано предупреждение. См. также sem_get() и sem_release(). |
||||||||||
|
||||||||||
Фактически такое выполнение обычными скобками двух функций не всегда помогает.
Бывают случаи, когда необходим группировка субпатэрнов без необходимости захвата.
Если после открывающей скобки идёт "?:", субпатэрн не выполняет захвата и не
учитывается при подсчёте количества захвативших субпатэрнов. Например, если
строка "the white queen" сопоставляется с патэрном
((?:red|white) (king|queen))
то будут захвачены подстроки "white queen" и "queen", и они будут пронумерованы
1 и 2. Максимальное количество захватываемых подстрок - 99, а максимальное количество
всех субпатэрнов, захватывающих и незахватывающих, равно 200.
В качестве удобной аббревиатуры, если любые установки опций нужны в начале
незахватывающего субпатэрна, буквы опций могут появляться между "?" и ":". Таким
образом, два субпатэрна
(?i:saturday|sunday)
(?:(?i)saturday|sunday)
совпадают с одним и тем же набором строк. Поскольку альтернативные ветви пробуются
слева направо, а опции не восстанавливают значения, пока не будет достигнут
конец субпатэрна, установка опций в одной ветви не влияет на последующие ветви,
и поэтому вышеприведённые патэрны совпадают с "SUNDAY", а также с "Saturday".
| |