(PECL sync >= 1.0.0)
SyncSemaphore::__construct β Π‘ΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ SyncSemaphore
$name = ?, int $initialval = 1, bool $autounlock = true)Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΈΠ»ΠΈ Π±Π΅Π·ΡΠΌΡΠ½Π½ΡΠΉ ΡΠ΅ΠΌΠ°ΡΠΎΡ.
nameΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΡΠ»ΠΈ ΠΈΠΌΡ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, ΠΎΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π΄Π»Ρ ΠΎΡΠΊΡΡΡΠΈΡ ΡΠ΅ΠΊΡΡΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ, ΠΎΡ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠ΅Π½ ΠΏΡΠΎΡΠ΅ΡΡ, ΠΈΠ½Π°ΡΠ΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ±ΡΠΎΡΠ΅Π½ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Ρ Π±Π΅ΡΡΠΌΡΡΠ»Π΅Π½Π½ΡΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅.
initialvalautounlock
ΠΡΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ - ΡΡΠΎ: ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ΅ΠΌΠ°ΡΠΎΡ Ρ autounlock ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ false, ΠΎΠ±ΡΠ΅ΠΊΡ
Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ ΠΈ ΡΠΊΡΠΈΠΏΡ PHP Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ,
ΡΠΎ Π±Π°Π·ΠΎΠ²ΡΠΉ ΡΠ΅ΠΌΠ°ΡΠΎΡ ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ Π² Π½Π΅ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ.
ΠΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ SyncSemaphore.
ΠΡΠ»ΠΈ ΡΠ΅ΠΌΠ°ΡΠΎΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ ΠΈΠ»ΠΈ ΠΎΡΠΊΡΡΡ, Π²ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅.
ΠΡΠΈΠΌΠ΅Ρ #1 ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ SyncSemaphore::__construct()
<?php
$semaphore = new SyncSemaphore("LimitedResource_2clients", 2);
if (!$semaphore->lock(3000))
{
echo "ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΠΌΠ°ΡΠΎΡ.";
exit();
}
/* ... */
$semaphore->unlock();
?>