ΠΠ»Π°Ρ parallel\Channel
(0.9.0)
ΠΠ΅Π±ΡΡΠ΅ΡΠΈΠ·ΠΎΠ²Π°Π½Ρ ΠΊΠ°Π½Π°Π»ΠΈ
ΠΠ΅Π±ΡΡΠ΅ΡΠΈΠ·ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊΠ°Π½Π°Π» Π±Π»ΠΎΠΊΡΠ²Π°ΡΠΈΠΌΠ΅ΡΡΡΡ ΠΏΡΠ΄ ΡΠ°Ρ Π΄Π·Π²ΡΠ½ΠΊΡΠ² parallel\Channel::send() Π΄ΠΎ ΡΠΈΡ ΠΏΡΡ, ΠΏΠΎΠΊΠΈ Π½Π΅ Π·'ΡΠ²ΠΈΡΡΡΡ ΠΎΠ΄Π΅ΡΠΆΡΠ²Π°Ρ, Ρ Π±Π»ΠΎΠΊΡΠ²Π°ΡΠΈΡΡ ΠΏΡΠΈ Π²ΠΈΠΊΠ»ΠΈΠΊΠ°Ρ parallel\Channel::recv() Π΄ΠΎΡΠΈ, Π΄ΠΎΠΊΠΈ Π·'ΡΠ²ΠΈΡΡΡΡ Π²ΡΠ΄ΠΏΡΠ°Π²Π½ΠΈΠΊ. Π¦Π΅ ΠΎΠ·Π½Π°ΡΠ°Ρ, ΡΠΎ Π½Π΅Π±ΡΡΠ΅ΡΠΈΠ·ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊΠ°Π½Π°Π» - ΡΠ΅ ΡΠΏΠΎΡΡΠ± ΠΎΠ±ΠΌΡΠ½Ρ Π΄Π°Π½ΠΈΠΌΠΈ ΠΌΡΠΆ Π·Π°Π²Π΄Π°Π½Π½ΡΠΌΠΈ, Π° ΠΉ ΠΏΡΠΎΡΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΡΠΈΠ½Ρ ΡΠΎΠ½ΡΠ·Π°ΡΡΡ.
ΠΠ΅Π±ΡΡΠ΅ΡΠΈΠ·ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊΠ°Π½Π°Π» - ΡΠ΅ Π½Π°ΠΉΡΠ²ΠΈΠ΄ΡΠΈΠΉ ΡΠΏΠΎΡΡΠ± ΠΎΠ±ΠΌΡΠ½Ρ Π΄Π°Π½ΠΈΠΌΠΈ ΠΌΡΠΆ Π·Π°Π²Π΄Π°Π½Π½ΡΠΌΠΈ, ΡΠΎ Π²ΠΈΠΌΠ°Π³Π°Ρ Π½Π°ΠΉΠΌΠ΅Π½ΡΠΎΡ ΠΊΡΠ»ΡΠΊΠΎΡΡΡ ΠΊΠΎΠΏΡΡΠ²Π°Π½Π½Ρ.
ΠΡΡΠ΅ΡΠΈΠ·ΠΎΠ²Π°Π½Ρ ΠΊΠ°Π½Π°Π»ΠΈ
ΠΡΡΠ΅ΡΠΈΠ·ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊΠ°Π½Π°Π» Π½Π΅ Π±Π»ΠΎΠΊΡΠ²Π°ΡΠΈΠΌΠ΅ΡΡΡΡ ΠΏΡΠ΄ ΡΠ°Ρ Π΄Π·Π²ΡΠ½ΠΊΡΠ² parallel\Channel::send() Π΄ΠΎ Π·Π°ΠΏΠΎΠ²Π½Π΅Π½Π½Ρ Π±ΡΡΠ΅ΡΠ°, Π° Π΄Π·Π²ΡΠ½ΠΊΠΈ parallel\Channel::recv() Π±Π»ΠΎΠΊΡΠ²Π°ΡΠΈΠΌΡΡΡΡΡ Π΄ΠΎ ΡΠΈΡ ΠΏΡΡ, ΠΏΠΎΠΊΠΈ Π² Π±ΡΡΠ΅ΡΡ Ρ Π΄Π°Π½Ρ.
ΠΠ°ΠΌΠΈΠΊΠ°Π½Π½Ρ ΠΏΠΎΠ²Π΅ΡΡ ΠΊΠ°Π½Π°Π»ΡΠ²
ΠΠΎΡΡΠΆΠ½Π° ΠΎΡΠΎΠ±Π»ΠΈΠ²ΡΡΡΡ ΠΏΠ°ΡΠ°Π»Π΅Π»ΡΠ½ΠΈΡ ΠΊΠ°Π½Π°Π»ΡΠ² Ρ ΡΠΎΠΌΡ, ΡΠΎ Π΄ΠΎΠ·Π²ΠΎΠ»ΡΡΡΡ ΠΎΠ±ΠΌΡΠ½ΡΠ²Π°ΡΠΈΡΡ Π·Π°ΠΌΠΈΠΊΠ°Π½Π½ΡΠΌΠΈ ΠΌΡΠΆ Π·Π°Π²Π΄Π°Π½Π½ΡΠΌΠΈ (Ρ ΡΠ΅ΡΠ΅Π΄ΠΎΠ²ΠΈΡΠ°ΠΌΠΈ Π²ΠΈΠΊΠΎΠ½Π°Π½Π½Ρ).
ΠΠΎΠ»ΠΈ Π·Π°ΠΌΠΈΠΊΠ°Π½Π½Ρ Π²ΡΠ΄ΠΏΡΠ°Π²Π»ΡΡΡΡΡΡ ΠΏΠΎ ΠΊΠ°Π½Π°Π»Ρ, Π²ΠΎΠ½ΠΎ Π±ΡΡΠ΅ΡΠΈΠ·ΡΡΡΡΡΡ, Π½Π΅ Π·ΠΌΡΠ½ΡΡ Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΡΡ ΠΊΠ°Π½Π°Π»Ρ, ΡΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Ρ Π·Π°ΠΌΠΈΠΊΠ°Π½Π½Ρ, Π°Π»Π΅ Π²ΠΎΠ½ΠΎ Π²ΠΏΠ»ΠΈΠ²Π°Ρ Π½Π° ΡΡΠ°ΡΠΈΡΠ½Ρ ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΡ Π²ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Ρ Π·Π°ΠΌΠΈΠΊΠ°Π½Π½Ρ: ΠΎΠ΄Π½Π΅ Ρ ΡΠ΅ ΠΆ Π·Π°ΠΌΠΈΠΊΠ°Π½Π½Ρ, Π²ΡΠ΄ΠΏΡΠ°Π²Π»Π΅Π½Π΅ Π² ΡΡΠ·Π½Ρ ΡΠ΅ΡΠ΅Π΄ΠΎΠ²ΠΈΡΠ° Π²ΠΈΠΊΠΎΠ½Π°Π½Π½Ρ Π°Π±ΠΎ Π² ΡΠ΅ ΡΠ°ΠΌΠ΅ ΡΠ΅ΡΠ΅Π΄ΠΎΠ²ΠΈΡΠ΅ Π²ΠΈΠΊΠΎΠ½Π°Π½Π½Ρ, Π½Π΅ Π΄ΡΠ»ΠΈΡΠΈΡΡ ΡΠ²ΠΎΡΡ ΡΡΠ°ΡΠΈΡΠ½ΠΎΡ ΠΎΠ±Π»Π°ΡΡΡ.
Π¦Π΅ ΠΎΠ·Π½Π°ΡΠ°Ρ, ΡΠΎ ΠΊΠΎΠΆΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Ρ, ΠΊΠΎΠ»ΠΈ Π²ΠΈΠΊΠΎΠ½ΡΡΡΡΡΡ Π·Π°ΠΌΠΈΠΊΠ°Π½Π½Ρ, ΡΠΊΠ΅ Π±ΡΠ»ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π΅ ΠΊΠ°Π½Π°Π»ΠΎΠΌ, ΡΡΠ°ΡΠΈΡΠ½ΠΈΠΉ ΡΡΠ°Π½ Π±ΡΠ΄Π΅ ΡΠ°ΠΊΠΈΠΌ, ΡΠΊΠΈΠΌ Π²ΠΎΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΏΡΠΈ Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΡΡ Π·Π°ΠΌΠΈΠΊΠ°Π½Π½Ρ.
ΠΠ½ΠΎΠ½ΡΠΌΠ½Ρ ΠΊΠ°Π½Π°Π»ΠΈ
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π°Π½ΠΎΠ½ΡΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Ρ Π΄ΠΎΠ·Π²ΠΎΠ»ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΡΡΡΡ ΡΠ½ΠΈΠΊΠ°ΡΠΈ ΠΏΡΠΈΡΠ²ΠΎΡΠ½Π½Ρ ΡΠΌΠ΅Π½ ΠΊΠΎΠΆΠ½ΠΎΠΌΡ ΠΊΠ°Π½Π°Π»Ρ: parallel Π³Π΅Π½Π΅ΡΡΡ ΡΠ½ΡΠΊΠ°Π»ΡΠ½Π΅ ΡΠΌ'Ρ Π°Π½ΠΎΠ½ΡΠΌΠ½ΠΈΡ ΠΊΠ°Π½Π°Π»ΡΠ².
ΠΠ³Π»ΡΠ΄ ΠΊΠ»Π°ΡΡΠ²
final
class parallel\Channel
{
/* ΠΠ½ΠΎΠ½ΠΈΠΌΠ½ΡΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ */
public __construct()
public __construct(int $capacity)
/* ΠΠΎΡΡΡΠΏ */
public make(string $name): Channel
public make(string $name, int $capacity): Channel
public open(string $name): Channel
/* Π‘ΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ */
public recv(): mixed
public send(mixed $value): void
/* ΠΠ°ΠΊΡΡΡΠΈΠ΅ */
public close(): void
/* ΠΠΎΠ½ΡΡΠ°Π½ΡΠ° Π΄Π»Ρ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉ Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ */
const
Infinite;
}
ΠΠΌΡΡΡ
- parallel\Channel::__construct - ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊΠ»Π°ΡΡ Channel
- parallel\Channel::make - ΠΠΎΡΡΡΠΏ
- parallel\Channel::open - ΠΠΎΡΡΡΠΏ
- parallel\Channel::recv - Π‘ΠΏΡΠ»ΡΠ½Π΅ Π²ΠΈΠΊΠΎΡΠΈΡΡΠ°Π½Π½Ρ
- parallel\Channel::send - Π‘ΠΏΡΠ»ΡΠ½Π΅ Π²ΠΈΠΊΠΎΡΠΈΡΡΠ°Π½Π½Ρ
- parallel\Channel::close - ΠΠ°ΠΊΡΠΈΡΡΡ