Клас 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;


   }

Зміст