SyncSemaphore::__construct

(PECL sync >= 1.0.0)

SyncSemaphore::__construct β€” Π‘ΠΎΠ·Π΄Π°Ρ‘Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ SyncSemaphore

ОписаниС

public function SyncSemaphore::__construct(string $name = ?, int $initialval = 1, bool $autounlock = true)

Π‘ΠΎΠ·Π΄Π°Ρ‘Ρ‚ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΈΠ»ΠΈ бСзымянный сСмафор.

Бписок ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

name
Имя сСмафора, Ссли это ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ сСмафора.

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Если имя ΡƒΠΆΠ΅ сущСствуСт, ΠΎΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ доступно для открытия Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π·Π°ΠΏΡƒΡ‰Π΅Π½ процСсс, ΠΈΠ½Π°Ρ‡Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±Ρ€ΠΎΡˆΠ΅Π½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ с бСссмыслСнным сообщСниСм ΠΎΠ± ошибкС.

initialval
ΠΠ°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ сСмафора. Π­Ρ‚ΠΎ количСство Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ.
autounlock
Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, слСдуСт Π»ΠΈ автоматичСски Ρ€Π°Π·Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сСмафор ΠΏΡ€ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ скрипта PHP.
Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅

Если ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ - это: ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ сСмафор с autounlock со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ false, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½ ΠΈ скрипт PHP Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ разблокируСтся, Ρ‚ΠΎ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ сСмафор окаТСтся Π² нСсогласованном состоянии.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния

Новый ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ SyncSemaphore.

Ошибки

Если сСмафор Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ создан ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚, выбрасываСтся ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #1 ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования SyncSemaphore::__construct()

<?php
$semaphore
= new SyncSemaphore("LimitedResource_2clients", 2);

if (!
$semaphore->lock(3000))
{
echo
"НСвозмоТно Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сСмафор.";

exit();
}

/* ... */

$semaphore->unlock();
?>

Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅

  • SyncSemaphore::lock() - Π£ΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ счёт сСмафора ΠΈΠ»ΠΈ ΠΆΠ΄Ρ‘Ρ‚
  • SyncSemaphore::unlock() - Π£Π²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ счёт сСмафора
οΌ‹Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π΅Ρ‰Ρ‘ Π½Π΅ добавляли примСчания для страницы