SyncSemaphore::lock

(PECL sync >= 1.0.0)

SyncSemaphore::lock β€” Π£ΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ счёт сСмафора ΠΈΠ»ΠΈ ΠΆΠ΄Ρ‘Ρ‚

ОписаниС

public function SyncSemaphore::lock(int $wait = -1): bool

Π£ΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ счётчик ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° SyncSemaphore ΠΈΠ»ΠΈ ΠΆΠ΄Ρ‘Ρ‚, ΠΏΠΎΠΊΠ° сСмафор Π½Π΅ станСт ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΎΡ‚ нуля.

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

wait
ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ миллисСкунд оТидания сСмафора. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ -1 бСсконСчно.

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

Ѐункция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ true, Ссли Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»Π°ΡΡŒ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, ΠΈΠ»ΠΈ false, Ссли Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ошибка.

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

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

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

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

exit();
}

/* ... */

$semaphore->unlock();
?>

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

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

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

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