ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ
Π Π΅Π°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Java: ΠΊΠ°ΠΊ, Π·Π°ΡΠ΅ΠΌ ΠΈ ΡΡΠΎΠΈΡ Π»ΠΈ? Π§Π°ΡΡΡ I
ΠΠ΄Π΅Ρ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ ΡΡΠ°Π²Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅Π΄Π°Π²Π½ΠΎ, Π»Π΅Ρ 10 Π½Π°Π·Π°Π΄. Π§ΡΠΎ Π²ΡΠ·Π²Π°Π»ΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ ΡΡΠΎΠ³ΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ ΡΠ΅ΠΉΡΠ°Ρ ΠΎΠ½ Π² ΡΡΠ΅Π½Π΄Π΅, ΡΠ°ΡΡΠΊΠ°Π·Π°Π» Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ Π ΠΠ’++ 2020 ΡΠΊΡΠΏΠ΅ΡΡ ΠΈ ΡΡΠ΅Π½Π΅Ρ Luxoft Training ΠΠ»Π°Π΄ΠΈΠΌΠΈΡ Π‘ΠΎΠ½ΡΠΊΠΈΠ½.
Π ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΌΠ°ΡΡΠ΅Ρ-ΠΊΠ»Π°ΡΡΠ° ΠΎΠ½ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°Π», ΠΏΠΎΡΠ΅ΠΌΡ ΡΠ°ΠΊ Π²Π°ΠΆΠ΅Π½ Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΠΉ Π²Π²ΠΎΠ΄-Π²ΡΠ²ΠΎΠ΄, Π² ΡΠ΅ΠΌ ΠΌΠΈΠ½ΡΡΡ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ, Π² ΠΊΠ°ΠΊΠΈΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ Π½ΡΠΆΠ½Π° ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ, ΠΈ ΡΡΠΎ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ Π΄Π°ΡΡ. Π Π΅ΡΠ΅ ΠΎΠΏΠΈΡΠ°Π» Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°.
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΎΠ½ΠΎ Π½ΡΠΆΠ½ΠΎ, ΠΎΠ±ΡΡΠ΄ΠΈΠΌ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅ΡΡ.
ΠΠΎΡΠ΅ΠΌΡ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎ ΡΠ°ΠΊΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ? Π ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π»Π° ΡΠ°ΡΡΠΈ ΡΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ², Π° Π·Π½Π°ΡΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΡΠΆΠ΅ Π½Π΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°ΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΠΊΠΎΡΠΎΡΡΡ ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΡΡΠ°Π½Π΅Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡΡΡ ΡΠ°ΠΌΠ° ΠΏΠΎ ΡΠ΅Π±Π΅: ΡΠ΅ΠΏΠ΅ΡΡ ΠΈΡ Π½ΡΠΆΠ½ΠΎ ΡΠ°ΡΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ²Π°ΡΡ.
ΠΠ° ΡΠΈΡΡΠ½ΠΊΠ΅ Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π³ΡΠ°ΡΠΈΠΊ ΡΠ°ΡΡΠΎΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² ΡΠΎΡ Π² 90-Ρ , Π° Π² Π½Π°ΡΠ°Π»Π΅ 2000-Ρ ΡΠ°ΡΡΠΎΡΠ° ΡΠ΅Π·ΠΊΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΠ»Π°ΡΡ. ΠΠΊΠ°Π·Π°Π»ΠΎΡΡ, ΡΡΠΎ ΡΡΠΎ Π±ΡΠ» ΠΏΠΎΡΠΎΠ»ΠΎΠΊ.
ΠΠΎΡΠ΅ΠΌΡ ΠΆΠ΅ ΡΠΎΡΡ ΡΠ°ΡΡΠΎΡΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΡΡ?
Π’ΡΠ°Π½Π·ΠΈΡΡΠΎΡΡ Π½Π°ΡΠ°Π»ΠΈ Π΄Π΅Π»Π°ΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΌΠ°Π»ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°. PN-ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² Π½ΠΈΡ , ΠΏΠΎΠ»ΡΡΠΈΠ»ΡΡ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ½Π΅Π½ΡΠΊΠΈΠΌ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ΠΠ° Π³ΡΠ°ΡΠΈΠΊΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΡΡΠ°Π½Π·ΠΈΡΡΠΎΡΠΎΠ² Π²Π½ΡΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ: ΡΠ°Π·ΠΌΠ΅Ρ Π²ΡΠ΅ ΠΌΠ΅Π½ΡΡΠ΅ ΠΈ ΠΌΠ΅Π½ΡΡΠ΅, ΡΡΠ°Π½Π·ΠΈΡΡΠΎΡΠΎΠ² Π² ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ΅ Π²ΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΠΈ Π±ΠΎΠ»ΡΡΠ΅.
Π’Π°ΠΊΠ°Ρ ΠΌΠΈΠ½ΠΈΠ°ΡΡΡΠΈΠ·Π°ΡΠΈΡ ΡΠ°Π½ΡΡΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠ»Π° ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΡΠΎΡΠ»Π° ΡΠ°ΡΡΠΎΡΠ°. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Ρ Π±Π΅Π³ΡΡ ΡΠΎ ΡΠΊΠΎΡΠΎΡΡΡΡ ΡΠ²Π΅ΡΠ°, Π·Π° ΡΡΠ΅Ρ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ°, Π²ΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Ρ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ±Π΅ΠΆΠ°ΡΡ Π²Π΅ΡΡ ΠΏΡΡΡ Π²Π½ΡΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, ΡΠΌΠ΅Π½ΡΡΠ°Π»ΠΎΡΡ. ΠΠΎ ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΡ ΡΡΠΊΠ½ΡΠ»ΠΈΡΡ Π² ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠΎΡΠΎΠ»ΠΎΠΊ. ΠΡΠΈΡΠ»ΠΎΡΡ ΠΏΡΠΈΠ΄ΡΠΌΡΠ²Π°ΡΡ ΡΡΠΎ-ΡΠΎ Π΄ΡΡΠ³ΠΎΠ΅.
ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ
Π ΠΌΡ ΡΠΆΠ΅ Π·Π½Π°Π΅ΠΌ, ΡΡΠΎ ΡΠ΄Π°Π»ΠΎΡΡ ΠΏΡΠΈΠ΄ΡΠΌΠ°ΡΡ: Π½Π°ΡΠ°Π»ΠΈ Π΄Π΅Π»Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠ΄Π΅ΡΠ½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ. ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΠΏΠΈΡΠ°ΡΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΈ, ΡΡΠ°Π»ΠΈ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°ΡΡ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π°. ΠΠΎ Π΄Π»Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² Π½ΡΠΆΠ½Π° ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ.
Π’Π΅ΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ β ΡΠ»ΠΎΠΆΠ½Π°Ρ, Π½ΠΎ Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½Π°Ρ Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌ ΠΌΠΈΡΠ΅. Π’ΠΈΠΏΠΈΡΠ½ΡΠΉ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ ΠΈΠΌΠ΅Π΅Ρ ΠΎΡ 4 ΡΠ΄Π΅Ρ ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ². Π ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌ ΠΌΠΎΡΠ½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈ 100 ΡΠ΄Π΅Ρ. ΠΡΠ»ΠΈ Π² Π²Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ, Π²Ρ Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ². ΠΠΎΡΡΠΎΠΌΡ Π²ΡΠ΅ ΠΌΠΈΡΠΎΠ²ΡΠ΅ ΠΈΠ½Π΄ΡΡΡΡΠΈΠΈ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ Π΄Π²ΠΈΠ³Π°ΡΡΡΡ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎΠ±Ρ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΡΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ.
ΠΡΠΈ ΡΡΠΎΠΌ Π½Π°Ρ ΠΏΠΎΠ΄ΡΡΠ΅ΡΠ΅Π³Π°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠ΅ΠΉ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ Ρ ΡΡΠ΅ΡΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎ: ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ, Π³ΠΎΠ½ΠΊΠΈ, Π·Π°ΡΡΡΠ΄Π½Π΅Π½Π½Π°Ρ ΠΎΡΠ»Π°Π΄ΠΊΠ° ΠΈ Ρ.Π΄. ΠΏΠΎΠΏΠΎΡΡΠΈΠ»ΠΈ Π½Π΅ΠΌΠ°Π»ΠΎ ΠΊΡΠΎΠ²ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ. Π ΡΠΎΠΌΡ ΠΆΠ΅, ΡΡΠΎΠΈΠΌΠΎΡΡΡ ΡΠ°ΠΊΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π²ΡΡΠ΅.
Π Java ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ Π΄Π°Π²Π½ΡΠΌ-Π΄Π°Π²Π½ΠΎ, ΠΎΠ½Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Ρ ΡΠ°ΠΌΠΎΠΉ ΠΏΠ΅ΡΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ.
ΠΠΈΡΠ°ΡΡ Π±ΠΎΠ»ΡΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ, ΠΌΡΠ³ΠΊΠΎ Π³ΠΎΠ²ΠΎΡΡ, ΡΠ»ΠΎΠΆΠ½ΠΎ. Π‘Π΅ΠΉΡΠ°Ρ ΡΠ°ΠΊ ΡΠΆΠ΅ Π½ΠΈΠΊΡΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ. ΠΡΠΎ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ, ΡΡΠΎ ΠΊΠΎΠ΄ΠΈΡΡ Π½Π° ΠΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅.
ΠΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΡΡΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠ½ΠΎΡΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ, Π½Π΅ ΡΠ»ΡΡΡΠ°Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, Π° ΡΡ ΡΠ΄ΡΠ°Π΅Ρ Π΅Π΅.
Π§ΡΠΎ ΠΆΠ΅ Ρ ΡΡΠΈΠΌ Π΄Π΅Π»Π°ΡΡ?
ΠΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΡΡΡΡ. ΠΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° ΠΈΠ»Π»ΡΡΡΡΠ°ΡΠΈΡ. ΠΠ° Π»Π΅Π²ΠΎΠΉ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅ ΠΌΠ°Π»ΡΡ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠ΅Ρ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΠΌΠ°ΠΌΠ΅ Π² Π΄ΠΎΠΌΠ°ΡΠ½ΠΈΡ Π΄Π΅Π»Π°Ρ . ΠΠ°ΠΌΠ° Π΄ΠΎΡΡΠ°Π΅Ρ ΠΈΠ· ΡΡΠΈΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½ΠΊΠΈ Π±Π΅Π»ΡΠ΅, Π΄Π°Π΅Ρ ΡΠ΅Π±Π΅Π½ΠΊΡ, ΠΈ ΠΎΠ½ Π΅Π³ΠΎ ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅Ρ Π² ΠΊΠΎΡΠ·ΠΈΠ½Ρ. Π’Π°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π° 2 ΠΏΠΎΡΠΎΠΊΠ°: ΠΏΠΎΡΠΎΠΊ-ΠΌΠ°ΠΌΠ° ΠΈ ΠΏΠΎΡΠΎΠΊ-ΠΌΠ°Π»ΡΡ. Π’Π΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΠΎΠ·ΡΠ°ΡΡΠ°ΡΡ: Π΄Π²Π° ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ° Π»ΡΡΡΠ΅, ΡΠ΅ΠΌ ΠΎΠ΄ΠΈΠ½, Π²Π΅Π΄Ρ ΠΌΡ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π»ΠΈ Π΄Π²Π° ΡΠ΄ΡΠ°. ΠΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅ ΡΠ΅Π±Π΅ ΡΠ°ΠΊΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ: ΠΌΠ°ΠΌΠ° ΠΏΠΎΠ΄Π°Π΅Ρ ΡΠ΅Π±Π΅Π½ΠΊΡ Π±Π΅Π»ΡΠ΅ ΠΈ ΠΆΠ΄Π΅Ρ, ΠΏΠΎΠΊΠ° ΠΎΠ½ Π΅Π³ΠΎ ΡΠ»ΠΎΠΆΠΈΡ Π² ΠΌΠ°ΡΠΈΠ½ΠΊΡ. ΠΠ»ΠΈ ΡΠ΅Π±Π΅Π½ΠΎΠΊ ΠΆΠ΄Π΅Ρ Π±Π΅Π»ΡΠ΅ ΠΎΡ ΠΌΠ°ΠΌΡ. ΠΠ° Π΄Π΅Π»Π΅ ΠΎΠ½ΠΈ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΌΠ΅ΡΠ°ΡΡ Π΄ΡΡΠ³ Π΄ΡΡΠ³Ρ. ΠΠ»ΡΡ, Π½ΡΠΆΠ½ΠΎ ΠΎΡΠ²Π΅ΡΡΠΈ Π²ΡΠ΅ΠΌΡ Π½Π° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π±Π΅Π»ΡΡ. ΠΠ°ΠΌΠ° Π±ΡΡΡΡΠ΅Π΅ ΡΠ°Π·ΠΎΠ±ΡΠ°Π»Π°ΡΡ Π±Ρ Ρ Π±Π΅Π»ΡΠ΅ΠΌ ΡΠ°ΠΌΠ°.
ΠΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΡΠΈΡΡΠ°ΡΠΈΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅. ΠΠΎΡΡΠΎΠΌΡ ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΡΡΡΡ ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ ΡΠ°ΠΊ ΠΏΡΠΎΡΡΠ°, ΠΊΠ°ΠΊ ΠΊΠ°ΠΆΠ΅ΡΡΡ. ΠΡΠ΅ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π·Π°Π½ΠΈΠΌΠ°ΡΡ ΠΊΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΠ° ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅ ΡΠΏΡΠ°Π²Π° ΠΎΠ΄ΠΈΠ½ΠΎΠΊΠΈΠΉ ΠΏΠ°ΡΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΊΡΠΏΠΈΠ» ΡΠ΅Π±Π΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΠΌΠ°ΡΠΈΠ½ΠΊΡ. ΠΠ½Π° ΡΡΠΈΡΠ°Π΅Ρ, Π° ΠΎΠ½ Π² ΡΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΠΈΡΠ°ΡΡ ΠΊΠ½ΠΈΠΆΠΊΡ. ΠΠ΄Π΅ΡΡ ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎ Π΅ΡΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ Π΄Π»Ρ ΡΠ½ΠΎΡΠΈ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΡΠ²ΠΎΠΈΠΌ Π΄Π΅Π»ΠΎΠΌ ΠΈ ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π΅ ΡΠ»Π΅Π΄ΠΈΡ Π·Π° ΡΠ΅ΠΌ, Π·Π°Π²Π΅ΡΡΠΈΠ»Π°ΡΡ Π»ΠΈ ΡΡΠΈΡΠΊΠ°. ΠΠΎΠ³Π΄Π° ΡΡΠΈΡΠΊΠ° Π·Π°Π²Π΅ΡΡΠΈΡΡΡ, ΠΎΠ½ ΡΡΠ»ΡΡΠΈΡ Π·Π²ΡΠΊΠΎΠ²ΠΎΠΉ ΡΠΈΠ³Π½Π°Π» ΠΈ ΠΎΡΡΠ΅Π°Π³ΠΈΡΡΠ΅Ρ Π½Π° Π½Π΅Π³ΠΎ. Π’ΠΎ Π΅ΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΡΡΡ Π΅ΡΡΡ, Π° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ Π½Π΅Ρ. Π‘ΡΠ°Π»ΠΎ Π±ΡΡΡ Π½Π΅Ρ ΠΈ ΡΡΠ°ΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ, ΡΠΏΠ»ΠΎΡΠ½Π°Ρ Π²ΡΠ³ΠΎΠ΄Π°!
ΠΡΠΎ ΠΈ Π΅ΡΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Ρ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΡΡΡΡ. ΠΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ, ΠΈ ΠΌΡ Π΄Π°Π»ΠΈ Π΅ΠΌΡ Π½Π΅ ΡΠ°ΡΡΡ Π½Π°ΡΠ΅ΠΉ Π·Π°Π΄Π°ΡΠΈ, Π° ΡΠ²ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ. ΠΠ° Π»Π΅Π²ΠΎΠΉ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅ ΠΌΠ°ΠΌΠ° ΠΈ ΠΌΠ°Π»ΡΡΠΈΠΊ Π΄Π΅Π»Π°ΡΡ ΠΎΠ±ΡΡΡ Π·Π°Π΄Π°ΡΡ, Π° Π½Π° ΠΏΡΠ°Π²ΠΎΠΉ ΡΡΠΈΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° ΠΈ ΠΏΠ°ΡΠ΅Π½Ρ Π΄Π΅Π»Π°ΡΡ ΡΠ°Π·Π½ΡΠ΅, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ²ΠΎΡ. Π ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΎΠ½ΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡΡΡ: ΠΊΠΎΠ³Π΄Π° ΡΡΠΈΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° Π΄ΠΎΡΡΠΈΡΠ°Π΅Ρ, ΡΠ½ΠΎΡΠ° ΠΎΡΠ»ΠΎΠΆΠΈΡ ΡΠ²ΠΎΡ ΠΊΠ½ΠΈΠ³Ρ. ΠΠΎ Π²ΡΠ΅ 1,5 ΡΠ°ΡΠ°, ΠΏΠΎΠΊΠ° Π±Π΅Π»ΡΠ΅ ΡΡΠΈΡΠ°Π»ΠΎΡΡ, ΠΎΠ½ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ ΡΠ΅Π±Ρ ΡΡΠ²ΡΡΠ²ΠΎΠ²Π°Π», ΡΠΈΡΠ°Π» ΠΈ Π½ΠΈ ΠΎ ΡΠ΅ΠΌ Π½Π΅ Π΄ΡΠΌΠ°Π».
ΠΡΠΈΠΌΠ΅ΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠ²
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ 2 Π²Π°ΡΠΈΠ°Π½ΡΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ²: ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠΉ ΠΈ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ.
ΠΠΎΡΠΎΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ;
ΠΠΎΡΠΎΠΊΠ°ΠΌ thread 1 ΠΈ 2 Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΈ ΡΠΎΠΌΡ ΠΆΠ΅ ΠΎΠ±ΡΠ΅ΠΌΡ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΠΎΠΌΡ ΡΠ΅ΡΡΡΡΡ. ΠΠΎΠΏΡΡΡΠΈΠΌ, ΡΡΠΎ ΠΊΠ°ΠΊΠ°Ρ-ΡΠΎ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ , ΠΈ ΠΎΠ½Π° Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΊ Π½Π΅ΠΉ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. ΠΠ»ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ, Π½ΠΎ ΡΡΠΎ ΡΡΠ°Π·Ρ ΡΠ½ΠΈΠΆΠ°Π΅Ρ ΡΠΊΠΎΡΠΎΡΡΡ Π΅Π΅ ΡΠ°Π±ΠΎΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠΎΡΠΎΠΊΠ°ΠΌ Π»ΡΡΡΠ΅ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ Π½Π΅ΠΉ ΠΏΠΎ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ. ΠΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΡΡΠΈ Π·Π΄Π΅ΡΡ Π½Π΅Ρ: ΠΏΠΎΡΠΎΠΊΠ°ΠΌ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΠΎ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ. Π ΡΡΠ΅ΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ ΠΆΠ΄Π΅Ρ ΠΎΡΠ²Π΅ΡΠ° ΠΎΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΠΈ ΡΠΎΠΆΠ΅ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ β ΡΠ°ΠΊΠ°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΌΠ°Π»ΠΎΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π°.
ΠΡΠΎΠ΄Π΅ Π±Ρ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΡΡΡ Π΅ΡΡΡ, Π° ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² ΠΎΡ Π½Π΅Π΅ Π½Π΅ ΡΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ.
ΠΠΎΡΠΎΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎ.
ΠΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΡΡΡ, ΠΌΡ ΡΡΠ°Π²ΠΈΠΌ Π·Π°Π΄Π°ΡΡ, ΠΈ ΠΎΠ½Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π³Π΄Π΅-ΡΠΎ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄ΡΡΠ³ΠΈΠΌ ΡΠ΄ΡΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠΌ. ΠΡ ΠΏΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ Π·Π°Π΄Π°ΡΡ ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΡΡ Π΄ΡΡΠ³ΠΈΠΌΠΈ Π΄Π΅Π»Π°ΠΌΠΈ, Π° ΠΏΠΎΡΠΎΠΌ Π² ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ° Π·Π°Π΄Π°ΡΠ° Π·Π°Π²Π΅ΡΡΠΈΡΡΡ, ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ. ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠΈΠ»Π»ΡΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π±ΠΎΡΠΎΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ°ΡΠ°Π»ΡΠ½ΠΈΠΊ β ΠΏΠΎΡΠΎΠΊ main β ΡΡΠ°Π²ΠΈΡ Π·Π°Π΄Π°ΡΡ ΠΠ΅ΡΠ΅, ΠΈ Π³ΠΎΠ²ΠΎΡΠΈΡ: Β«ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΡΡ Π΅Π΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ, ΠΏΠ΅ΡΠ΅Π΄Π°ΠΉ ΠΠΎΠ»Π΅, Π° ΡΠΎΡ ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ Π·Π°Π΄Π°ΡΠ΅ΠΉ ΠΏΡΡΡΡ Π΄ΠΎΠ»ΠΎΠΆΠΈΡ ΠΌΠ½Π΅. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΠ΅ΡΡ ΠΈ ΠΠΎΠ»Ρ Π·Π°Π½ΡΡΡ ΡΠ°Π±ΠΎΡΠΎΠΉ, Π° Π½Π°ΡΠ°Π»ΡΠ½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°Π²ΠΈΡΡ Π½ΠΎΠ²ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ Π΄ΡΡΠ³ΠΈΠΌ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°ΠΌΒ».
ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΈΠΌΠ΅Ρ: ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΈΡ ΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌ.
ΠΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ ΡΠ΅Π±Π΅ ΠΎΡΠΈΡ, ΡΡΡΠΎ, Π²ΡΠ΅ΠΌ Ρ ΠΎΡΠ΅ΡΡΡ Π²ΡΠΏΠΈΡΡ ΠΊΠΎΡΠ΅. Concurrency (ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΈΡ) β ΡΡΠΎ ΠΊΠΎΠ³Π΄Π° Π²ΡΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΊ ΠΎΠ΄Π½ΠΎΠΉ Π½Π° Π²ΡΠ΅Ρ ΠΊΠΎΡΠ΅ΠΌΠ°ΡΠΈΠ½Π΅. ΠΡΠ΄ΠΈ ΠΊΠΎΠ½ΠΊΡΡΠΈΡΡΡΡ: Β«ΠΠΉ, Ρ ΡΡΡ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΡΠΎΡΠ»!Β» β Β«ΠΠ΅Ρ, Ρ!Β». ΠΠ½ΠΈ Π΄ΡΡΠ³ Π΄ΡΡΠ³Ρ ΠΌΠ΅ΡΠ°ΡΡ.
Π ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ΅ Π΅ΡΡΡ Π΄Π²Π΅ ΠΊΠΎΡΠ΅ΠΌΠ°ΡΠΈΠ½Ρ ΠΈ Π΄Π²Π΅ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ: ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΡΠΎΠΈΡ Π² ΡΠ²ΠΎΠ΅ΠΉ. ΠΠΎ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ ΡΡΠ°ΡΡΡ Π²ΡΠ΅ΠΌΡ Π½Π° ΡΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΡΠΎΡΡΡ ΡΠ°ΠΌ.
ΠΠ°ΠΊ Π½Π°ΠΉΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΡΠ΅Π½Π°ΡΠΈΡ, Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΡΡΡ?
ΠΠΎΡΡΠ°Π²ΠΊΠ° ΠΊΠΎΡΠ΅ ΠΏΡΡΠΌΠΎ ΠΊ ΡΡΠΎΠ»Ρ β Ρ ΠΎΡΠΎΡΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ, Π² ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ Π²Ρ Π½Π΅ ΡΡΠΎΠΈΡΠ΅, Π½ΠΎ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π½Π°Π½ΠΈΠΌΠ°ΡΡ ΠΎΡΠΈΡΠΈΠ°Π½ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠ°Π·Π½ΠΎΡΠΈΡΡ Π½Π°ΠΏΠΈΡΠΊΠΈ.
ΠΡΡΠ³ΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ β ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π³ΡΠ°ΡΠΈΠΊ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ΄ΠΈΠ½ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π·Π° ΠΊΠΎΡΠ΅ Π² 11:10, ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ β Π² 11:20 ΠΈ Ρ.Π΄. ΠΠΎ ΡΡΠΎ Π½Π΅ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΡΡΡ. ΠΡΠ΄ΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ ΠΏΡΠΎΡΡΠΎΠΈ, Π° Π·Π½Π°ΡΠΈΡ ΡΡΠΎ Π½Π΅ ΠΏΠΎΠ»Π½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΊΠΎΡΠ΅ΠΌΠ°ΡΠΈΠ½Ρ. ΠΡΠΎ-ΡΠΎ Π½Π΅ ΡΡΠΏΠ΅Π» ΠΊ ΡΠ²ΠΎΠ΅ΠΌΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π° ΠΊΠΎΠΌΡ-ΡΠΎ Π½Π΅ Ρ Π²Π°ΡΠΈΠ»ΠΎ 10 ΠΌΠΈΠ½ΡΡ, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ΅Π±Π΅ ΠΊΠΎΡΠ΅, ΠΈ Π² ΠΈΡΠΎΠ³Π΅ Π²Π΅ΡΡ Π³ΡΠ°ΡΠΈΠΊ ΡΠ΄Π²ΠΈΠ³Π°Π΅ΡΡΡ. Π Π΅ΡΠ»ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ
Π±ΠΎΠ»ΡΡΠΈΠ΅ Π·Π°Π·ΠΎΡΡ, ΠΊΠΎΡΠ΅ΠΌΠ°ΡΠΈΠ½Π° Π±ΡΠ΄Π΅Ρ Π½Π΅Π΄ΠΎΠ³ΡΡΠΆΠ΅Π½Π°. Π ΠΏΠΎΡΠΎΠΌ, Π²ΡΠ΅ Ρ ΠΎΡΡΡ ΠΏΡΠΈΠΉΡΠΈ Π² 10 ΡΡΡΠ° ΠΈ Π²ΡΠΏΠΈΡΡ ΠΊΠΎΡΠ΅, Π° ΡΡΠΎ ΡΠ°ΡΡΡΠ³ΠΈΠ²Π°Π΅ΡΡΡ Π½Π° 2 ΡΠ°ΡΠ°, ΠΈ ΠΊΠΎΠΌΡ-ΡΠΎ Π΅Π³ΠΎ ΡΠ°ΡΠΊΠ° Π΄ΠΎΡΡΠ°Π½Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² 12.
ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ Π²Π°ΡΠΈΠ°Π½Ρ β Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ Π²ΡΠ΅Ρ ΠΆΠ΅Π»Π°ΡΡΠΈΡ Π² Β«Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄ΡΒ». ΠΠΎΠ³Π΄Π° ΠΊΠΎΡΠ΅ΠΌΠ°ΡΠΈΠ½Π° ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡΡΡ ΠΎΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ Π»ΡΠ±ΠΈΡΠ΅Π»Π΅ΠΉ ΠΊΠΎΡΠ΅, ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ ΠΊ ΠΊΠΎΡΠ΅ΠΌΠ°ΡΠΈΠ½Π΅ Π±Π΅Π· ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ. Π‘Π΅ΠΉΡΠ°Ρ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡΡ ΡΠ°ΠΊ Π΄Π΅Π»Π°ΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°Ρ Ρ ΡΠ°ΠΌΠΎΠ²ΡΠ²ΠΎΠ·ΠΎΠΌ. ΠΠ΅ΡΠ΅ΡΡ ΡΠ°Π»ΠΎΠ½ΡΠΈΠΊ ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡΡ ΡΠ²ΠΎΠΈΠΌΠΈ Π΄Π΅Π»Π°ΠΌΠΈ, Π° ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ Π²ΡΠ΅ΠΌΡ, ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡΡ ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡ ΡΠΎΠ²Π°Ρ. ΠΠΎΡ ΡΡΠΎ ΠΈ Π΅ΡΡΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΡΡΡ: Π½ΠΈΠΊΡΠΎ Π½ΠΈΠΊΠΎΠ³ΠΎ Π½Π΅ ΠΆΠ΄Π΅Ρ, Π²ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠ²ΠΎΠΉ ΠΊΠΎΡΠ΅ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ Π±ΡΡΡΡΠΎ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Π ΠΊΠΎΡΠ΅ΠΌΠ°ΡΠΈΠ½Π° ΡΠΎΠΆΠ΅ Π½Π΅ ΠΏΡΠΎΡΡΠ°ΠΈΠ²Π°Π΅Ρ.
Π‘ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΡΡΡΡ ΡΠ°Π·ΠΎΠ±ΡΠ°Π»ΠΈΡΡ. ΠΠΎ Π΅ΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄Π½Π° Π²Π°ΠΆΠ½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°: Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΠΉ Π²Π²ΠΎΠ΄-Π²ΡΠ²ΠΎΠ΄.
ΠΠ»ΠΎΠΊΠΈΡΡΡΡΠΈΠΉ Π²Π²ΠΎΠ΄-Π²ΡΠ²ΠΎΠ΄
Π’ΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠΉ Π²Π²ΠΎΠ΄-Π²ΡΠ²ΠΎΠ΄ β Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΠΉ. Π ΡΡΠΎ ΠΆΠ΅ ΡΠ°ΠΊΠΎΠ΅ Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΠΉ Π²Π²ΠΎΠ΄-Π²ΡΠ²ΠΎΠ΄?
ΠΠΎΠΏΡΡΡΠΈΠΌ, Π²Ρ ΡΠΈΡΠ°Π΅ΡΠ΅ ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ, ΠΈ ΠΎΠ½ Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ ΠΏΠΎΡΠΎΠΊ: ΠΌΡ Π±ΠΎΠ»ΡΡΠ΅ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅ΠΌ, ΠΌΡ ΠΆΠ΄Π΅ΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ Π²ΡΠ·Π²Π°Π»ΠΈ readFile() ΠΈ ΠΆΠ΄Π΅ΡΠ΅, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ Π½Π°ΠΊΠΎΠ½Π΅Ρ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ. ΠΠΎΡΠΎΠΊ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ ΠΈ Π½Π΅ ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠΈΡΡΠ΅Ρ: ΠΎΠ½ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈ. ΠΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Π½Π΅ Π·Π°Π½ΡΡ.
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Ρ ΠΏΠΎΡΠΎΠΊΠΈ:
ΠΠ° ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° (blocked on reading file);
ΠΠ° ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ (blocked on reading from DB);
ΠΠ° ΡΠ»ΠΎΠΆΠ½ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡΡ (blocked on heavy calculations);
ΠΠ° ΠΎΡΠ²Π΅ΡΠ΅ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° (blocked on responding the client).
ΠΡΠ° ΡΠΈΡΡΠ°ΡΠΈΡ ΡΡΠΎΠ΄Π½ΠΈ ΡΠΎΠΉ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΏΡΠΈΡΠ»ΠΈ Π² ΡΡΠΏΠ΅ΡΠΌΠ°ΡΠΊΠ΅Ρ, ΡΠ°ΠΌ Π΅ΡΡΡ ΡΠ΅ΡΡΡΠ΅ ΠΊΠ°ΡΡΡ, Π½ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΊΠ°ΡΡ ΡΠΎΡΠΌΠΎΠ·ΠΈΡ. ΠΠ°ΡΡΠΈΡΡΠΈ ΡΠΈΠ΄ΡΡ, Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°ΡΡ ΠΈ ΠΏΡΠΎΡΡΠΎ ΠΆΠ΄ΡΡ, ΠΏΠΎΠΊΠ° Π½Π° ΠΊΠ°ΡΡΠ΅ ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π°ΠΆΠ°ΡΠΈΠ΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ.
Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ Π²ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Ρ? ΠΠ°ΠΊ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠ΅ΡΠ°ΡΡΡΡ Π² ΡΡΠΏΠ΅ΡΠΌΠ°ΡΠΊΠ΅ΡΠ΅?
Synchronous I/O
ΠΠ°ΡΠΈΠ°Π½Ρ ΠΎΠ±ΡΡΠ½ΡΠΉ: ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ Π²Π²ΠΎΠ΄-Π²ΡΠ²ΠΎΠ΄. Π₯ΠΎΡΠΎΡΠ΅Π³ΠΎ ΠΌΠ°Π»ΠΎ, Π² ΡΡΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅ ΠΎΠ±ΡΠ°Π·ΡΡΡΡΡ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΠΊ ΠΊΠ°ΡΡΠ°ΠΌ.
Π§ΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΡΠΎΠ±Ρ Π²ΠΎΠ·Π»Π΅ ΠΊΠ°ΡΡ Π½Π΅ ΡΠΎΠ±ΠΈΡΠ°Π»ΠΈΡΡ ΠΎΠ³ΡΠΎΠΌΠ½ΡΠ΅ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ? ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΊΡΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΊΠ°ΡΡ, ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠ².
ΠΠΎΠ»ΡΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠ² β Π±ΠΎΠ»ΡΡΠ΅ ΠΊΠ°ΡΡ. ΠΡΠΎ ΡΠ°Π±ΠΎΡΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ. ΠΠΎ Π½Π°Π³ΡΡΠ·ΠΊΠ° ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ Π½Π΅ΡΠ°Π²Π½ΠΎΠΌΠ΅ΡΠ½ΠΎΠΉ.
ΠΡ ΠΎΡΠΊΡΡΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠ°ΡΡ (ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ²), ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ, ΡΡΠΎ ΠΊΡΠΎ-ΡΠΎ ΠΏΡΠΎΡΡΠ°ΠΈΠ²Π°Π΅Ρ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΡΡΠΎ Π½Π΅ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΎΡΡΠΎΠΉ: ΠΊΠΎΠ³Π΄Π° Ρ Π½Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ², Π΅ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ°ΡΡ ΠΎΠ΄ ΡΠ΅ΡΡΡΡΠΎΠ². Π£Π²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ ΡΠ°ΡΡ ΠΎΠ΄ ΠΏΠ°ΠΌΡΡΠΈ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ.
Π§Π΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΡΠ΅ΠΌ ΡΠ°ΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ. ΠΠΎΠ»ΡΡΠ°Π΅ΡΡΡ, ΡΡΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² Ρ Π½Π°Ρ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΡΠ΄Π΅Ρ. ΠΠΎΠΏΡΡΡΠΈΠΌ, Ρ Π½Π°Ρ 4 ΡΠ΄ΡΠ°, Π° ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΌΡ Π½Π°ΡΠΎΠ·Π΄Π°Π²Π°Π»ΠΈ ΡΠΎΡΠ½Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ Π±ΡΠ»ΠΈ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Ρ ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½ΡΡ . Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ context switching, ΡΡΠΎΠ±Ρ ΡΠ°Π·Π½ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ ΠΏΠΎΠ»ΡΡΠ°Π»ΠΈ ΡΠ²ΠΎΡ ΠΏΠΎΡΡΠΈΡ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΠΎ Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° Π΅ΡΡΡ ΠΌΠΈΠ½ΡΡΡ. Context switching Π½Π΅ Π±Π΅ΡΠΏΠ»Π°ΡΠ΅Π½. ΠΠ½ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π²ΡΠ΅ΠΌΡ. ΠΠ»ΠΎΠ΄ΠΈΡΡ Π½Π΅ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π±ΡΠ»ΠΎ Π±Ρ Π½Π΅ΠΏΠ»ΠΎΡ ΠΈΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ Π² ΡΠ΅ΠΎΡΠΈΠΈ. ΠΠΎ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠΏΠ°Π΄ΠΎΠΊ ΡΠΊΠΎΡΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ ΠΈ ΡΠΎΡΡ ΠΏΠΎΡΡΠ΅Π±Π»ΡΠ΅ΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ.
Π Java Π΅ΡΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Ρ ΡΡΠΈΠΌ Π±ΠΎΡΠΎΡΡΡΡ β ΡΡΠΎ Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΠ΅ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΠΈ ΠΏΡΠ»Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ² (ThreadPool). ΠΠΎΠΆΠ½ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΠΈ ΡΠΎΠ³Π΄Π° Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡ Π²ΡΡΠ°ΡΡ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ. ΠΡΠΈ ΡΡΠ°ΡΡΠ΅ Ρ Π½Π°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΠΏΠΎΡΠΎΠΌ ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°ΡΡΠ΅Ρ.
ΠΠ΅ΡΠ½Π΅ΠΌΡΡ ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°: Π΅ΡΠ»ΠΈ Π½Π°ΡΠΎΠ΄Π° Π½Π΅Ρ, Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅ ΠΎΡΠΊΡΡΡΡ Π΄Π²Π΅ ΠΊΠ°ΡΡΡ, Π° Π² ΡΠ°Ρ ΠΏΠΈΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄Π΅ΡΡΡΡ. ΠΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΠΌΡ ΠΎΡΠΊΡΡΡΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠΎΠ³Π΄Π° ΠΏΡΠΈΡΠ»ΠΎΡΡ Π±Ρ Π°ΡΠ΅Π½Π΄ΠΎΠ²Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠ»ΠΎΡΠ°Π΄Ρ ΠΈ Π½Π°Π½ΠΈΠΌΠ°ΡΡ Π»ΡΠ΄Π΅ΠΉ. Π ΡΡΠΎ ΡΠ΄Π°ΡΠΈΡ ΠΏΠΎ Π±ΠΈΠ·Π½Π΅ΡΡ.
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°Ρ : ΠΊΠ°ΡΡΠ°Ρ ΡΠ°ΠΌΠΎΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ, ΠΏΡΠ΅Π΄Π·Π°ΠΊΠ°Π·Π°Ρ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. Π Π·Π½Π°ΡΠΈΡ, ΠΌΡ ΠΏΠΎΠ΄Π±ΠΈΡΠ°Π΅ΠΌΡΡ ΠΊ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠΌΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ.
Asynchronous I/O
ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ Π²Π²ΠΎΠ΄-Π²ΡΠ²ΠΎΠ΄ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π°Π²Π½ΠΎ, Π²Π΅Π΄Ρ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ°, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Ρ ΡΠ°ΠΌΡΠΌ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°. Π Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΌ Π΄Π΅Π²Π°ΠΉΡΠΎΠΌ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°, Ρ ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ ΠΊΠΎΠ½ΡΠΎΠ»Ρ ΠΈΠ»ΠΈ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ°, Π° ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ. Π ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ, Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΡΡΡ ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ Π΄Π°Π²Π½ΡΠΌ-Π΄Π°Π²Π½ΠΎ.
ΠΠ»ΠΎΠΊΠΈΡΡΡΡΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ ΠΊΠΎΠ³Π΄Π°-ΡΠΎ ΠΈ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ°ΡΡΠΉ DOSβΠΎΠ²ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. Π ΡΠ΅ΠΉΡΠ°Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠ°ΠΊΠΈΠ΅ ΡΡΠΈΠ»ΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°Π΄Π°ΡΡ Π²ΠΎΠΏΡΠΎΡ, Π±Π»ΠΎΠΊΠΈΡΡΡΡΡΡ ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°ΡΡ, Π° ΠΆΠ΄ΡΡ, ΠΏΠΎΠΊΠ° ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ ΠΎΡΠ²Π΅ΡΠΈΡ. Π‘ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΊΠ°ΠΊ ΡΡΠ°Π»ΠΈ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ ΠΎΠΊΠΎΠ½Π½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ Π²Π²ΠΎΠ΄-Π²ΡΠ²ΠΎΠ΄. Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΠΈΠΌΠ΅Π½Π½ΠΎ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠ΅.
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΡΡΡ?
ΠΡ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ-callback, Π½ΠΎ Π½Π° ΡΠ΅ΠΉ ΡΠ°Π· Π½Π΅ Π³ΠΎΠ²ΠΎΡΠΈΠΌ: Β«Π§Π΅Π»ΠΎΠ²Π΅ΠΊ, Π²Π²Π΅Π΄ΠΈ Π΄Π°Π½Π½ΡΠ΅, Π° Ρ Π±ΡΠ΄Ρ ΠΆΠ΄Π°ΡΡΒ». ΠΡΠΎ Π·Π²ΡΡΠΈΡ ΠΈΠ½Π°ΡΠ΅: Β«ΠΠΎΠ³Π΄Π° ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ Π²Π²Π΅Π΄Π΅Ρ Π΄Π°Π½Π½ΡΠ΅, Π²ΡΠ·ΠΎΠ²ΠΈ, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ β callbackΒ». Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² Π»ΡΠ±ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. ΠΠΎ Π² JavaScript ΠΎΠ½ Π±ΡΠ» ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ. Π 2009 Π³ΠΎΠ΄Ρ, ΠΊΠΎΠ³Π΄Π° Π΄Π²ΠΈΠΆΠΎΠΊ JavaScript ΡΡΠ°Π» ΡΠ°Π±ΠΎΡΠ°ΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΡΡΡΡΠ΅Π΅, ΡΠΌΠ½ΡΠ΅ ΡΠ΅Π±ΡΡΠ° ΡΠ΅ΡΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅, ΠΈ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Node.js.
Node.js
ΠΠ΄Π΅Ρ Node.js Π² ΡΠΎΠΌ, ΡΡΠΎ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΡΠ°ΡΡΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡΡΡ JavaScript, ΠΈ Π²Π΅ΡΡ Π²Π²ΠΎΠ΄-Π²ΡΠ²ΠΎΠ΄ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΌ. Π’ΠΎ Π΅ΡΡΡ Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΠΎΠΊ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π»ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΊ ΡΠ°ΠΉΠ»Ρ, ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ Π²Π²ΠΎΠ΄-Π²ΡΠ²ΠΎΠ΄. ΠΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΠ°ΠΉΠ»Ρ ΡΠΎΠΆΠ΅ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΏΠΎΡΠΎΠΊΡ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π°, ΠΎΠ½ Π³ΠΎΠ²ΠΎΡΠΈΡ: Β«ΠΠ°ΠΉΡΠ΅ ΠΌΠ½Π΅, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π°, Π° ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΠΈΡΠ°Π½ΠΎ, Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡΒ». ΠΡ ΠΏΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ Π·Π°Π΄Π°ΡΡ ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΡΡ ΡΠ²ΠΎΠΈΠΌΠΈ Π΄Π΅Π»Π°ΠΌΠΈ.
Π’Π°ΠΊΠΎΠΉ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΎΠΊΠ°Π·Π°Π»ΡΡ Π²Π΅ΡΡΠΌΠ° Π΄Π΅ΠΉΡΡΠ²Π΅Π½Π½ΡΠΌ, ΠΈ Node.js Π±ΡΡΡΡΠΎ Π½Π°Π±ΡΠ°Π» ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ.
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Node.js?
ΠΠ° Π²Ρ ΠΎΠ΄Π΅ Π΅ΡΡΡ ΠΏΡΠΈΠ΅ΠΌΡΠΈΠΊ β ΡΡΠΎ ΡΠΈΠΊΠ». JavaScript ΠΎΠ΄Π½ΠΎΠΏΠΎΡΠΎΡΠ½ΡΠΉ ΡΠ·ΡΠΊ. ΠΠΎ ΡΡΠΎ Π½Π΅ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΡΠ°ΠΌ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅Π»ΡΠ·Ρ Π΄Π΅Π»Π°ΡΡ Π² Π΄ΡΡΠ³ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ°Ρ . Π Π½Π΅ΠΌ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΠΏΠΎΡΠΎΠΊΠΈ ΡΠ΅ΡΠ΅Π· Web Workers ΠΈ Ρ.Π΄. ΠΠΎ Π½Π° Π²Ρ ΠΎΠ΄Π΅ ΡΡΠΎΠΈΡ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ.
ΠΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ Π΄Π»Ρ Node.js ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΡΠ΅Π½Ρ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠ΅. ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠ°Π±ΠΎΡΠ° ΠΈΠ΄Π΅Ρ Ρ Π²Π²ΠΎΠ΄ΠΎΠΌ-Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ (Π² Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, Π² ΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ ΠΈ Ρ.Π΄.). Π‘Π°ΠΌΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π·Π°Π½ΠΈΠΌΠ°ΡΡ ΠΌΠ°Π»ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΠΎΠ³Π΄Π° Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΈΠ· Π±Π°Π·Ρ ΠΈΠ»ΠΈ ΠΈΠ· ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ callback, ΡΠΎ Π΅ΡΡΡ ΠΊΠ°ΠΊΠ°Ρ-ΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅.
ΠΠΎ Π² ΡΡΠΎΠΉ ΡΡ Π΅ΠΌΠ΅ Π½Π΅Ρ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ. Π‘ΡΠ°Π²Π½ΠΈΠΌ Π΅Π΅ Ρ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ° Π² Java.
What happens in Java?
ΠΠ΄Π΅ΡΡ Π΅ΡΡΡ ΠΏΡΠ» ΠΏΠΎΡΠΎΠΊΠΎΠ². Π‘Π½Π°ΡΠ°Π»Π° ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π² ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΠΎΡΠΎΠΊ, ΠΏΠΎΡΠΎΠΌ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΏΠΎΡΠΎΠΊ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π»ΡΡ, ΠΈ ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½. ΠΠ½ ΡΠΎΠΆΠ΅ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π»ΡΡ, ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ. Π Π±Π»ΠΎΠΊΠΈΡΡΡΡΡΡ ΠΎΠ½ΠΈ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΡΠΎΠΊ Π·Π°ΠΏΡΠΎΡΠΈΠ» ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΠΠ ΠΈ ΠΆΠ΄Π΅Ρ, ΠΊΠΎΠ³Π΄Π° ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΠΈΠ΄ΡΡ.
ΠΠΎΠ΄Π΅Π»Ρ Node.js ΠΎΡΠ΅Π½Ρ Π±ΡΡΡΡΠΎ ΡΡΠ°Π»Π° ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΠΉ. ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, Π² ΡΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ Π»ΡΠ΄ΠΈ ΡΡΠ°Π»ΠΈ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°ΡΡ Π΅Π΅ Π½Π° Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠ°Ρ . Node.js Π² ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΡΠ²Π°Π»ΡΡ Π²ΠΏΠ΅ΡΠ΅Π΄ Π² Π½Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΌΠΎΠΌ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°. ΠΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ ΠΎΠ½ Π½Π΅ Π΄Π»Ρ Π»ΡΠ±ΡΡ ΡΠΈΡΡΠ΅ΠΌ. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΡΠΎ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Π²Ρ Π½Π΅ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, Π² Java ΡΡΠ°Π»ΠΈ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΌ Π²Π²ΠΎΠ΄ΠΎΠΌ-Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ Vert.x. Π‘Π΅ΡΠ²Π΅Ρ Vert.x ΠΏΠΎΡΡΡΠΎΠ΅Π½ Π½Π° ΡΠ°ΠΊΠΎΠΌ ΠΆΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅, ΡΡΠΎ ΠΈ Node.js.
Π Π΅ΡΠ΅Π½ΠΈΠ΅ Node.js ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ΅, ΠΎΠ½ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΏΠΎΠ²ΡΡΠ°ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ. ΠΠΎΠ³Π΄Π° ΠΏΡΠΈΡΠ»Π° ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ, ΡΡΠ°Π»ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΠ΅ΡΠ²Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Netty. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΎΠΊΠ°Π·Π°Π»ΡΡ ΠΎΡΠ΅Π½Ρ Π²ΡΠ³ΠΎΠ΄Π½ΡΠΌ.
ΠΡΡΠΎΡΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ Π² Java? Π‘ΡΠ°ΡΠ°Ρ Π΄ΠΎΠ±ΡΠ°Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ Π² Java β ΡΡΠΎ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ:
Π‘Π»ΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ, ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΎΡΠ»Π°ΠΆΠΈΠ²Π°ΡΡ, ΡΠ»ΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ.
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠ΄ΡΠ°Π²ΡΡΠ²ΡΠΉΡΠ΅. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΠΏΡΠΎΠ±Π΅Π³ΡΡΡ Π³Π°Π»ΠΎΠΏΠΎΠΌ ΠΏΠΎ ΠΠ²ΡΠΎΠΏΠ°ΠΌ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ β ΡΠ°ΡΡΠΊΠ°ΠΆΡ, ΡΡΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΠΏΠΎΠ΄ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠ»Ρ Ρ Π°ΠΊΡΠΎΡΠ°ΠΌΠΈ, ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΡΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ, ΠΈ Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΌΡ ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΠ΅ ΠΌΡΡΠΈΠ½ΡΡ ΠΆΠ΅ΡΡΠΎΠ², ΠΊΠ°ΠΊ Π² ΡΡΠ°ΡΠΎΠΉ Opera ΠΈ Π΅Ρ Π΄ΡΡ ΠΎΠ²Π½ΠΎΠΌ Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠ΅ β Vivaldi.
Π¦Π΅Π»Ρ β ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡ Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΠΌΠΈ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ Π½Π΅ Π²ΡΡ ΡΠ°ΠΊ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΈ ΡΡΡΠ°ΡΠ½ΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π½Π° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄.
ΠΡΡΠΎΡΠ½ΠΈΠΊ
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅?
Π§ΡΠΎΠ±Ρ ΠΎΡΠ²Π΅ΡΠΈΡΡ Π½Π° ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ, ΠΎΠ±ΡΠ°ΡΠΈΠΌΡΡ ΠΊ ΡΠ°ΠΉΡΡ. ΠΠ° Π½ΡΠΌ Π΅ΡΡΡ ΠΊΡΠ°ΡΠΈΠ²Π°Ρ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ°, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ 4 ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΊΡΠΈΡΠ΅ΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΌ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π±ΡΡΡΡΡΠΌ, ΠΎΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΡΠΌ ΠΈ Ρ
ΠΎΡΠΎΡΠΎ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°ΡΡΡΡ.
ΠΡΠ³Π»ΡΠ΄ΠΈΡ ΠΊΠ°ΠΊ Β«ΠΌΡ Π·Π° Π²ΡΡ Ρ
ΠΎΡΠΎΡΠ΅Π΅ ΠΏΡΠΎΡΠΈΠ² Π²ΡΠ΅Π³ΠΎ ΠΏΠ»ΠΎΡ
ΠΎΠ³ΠΎΒ», Π²Π΅ΡΠ½ΠΎ?
Π§ΡΠΎ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅ΡΡΡ ΠΏΠΎΠ΄ ΡΡΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ:
ΠΠΎΠ΄Π΅Π»Ρ Π°ΠΊΡΠΎΡΠΎΠ²
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ Π²Π΅Ρ ΠΈ ΡΠ°Π·Π²ΠΈΡΠΈΡ:
Π§ΡΠΎ ΡΠΌΠ΅ΡΡ Π°ΠΊΡΠΎΡΡ?
ΠΠΊΡΠΎΡΡ β ΡΡΠΎ ΡΠ΅ ΠΆΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, Π½ΠΎ:
ΠΠΊΡΠΎΡ Π Ρ
ΠΎΡΠ΅Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π°ΠΊΡΠΎΡΡ Π. ΠΡΡ, ΡΡΠΎ Ρ Π½Π΅Π³ΠΎ Π΅ΡΡΡ β ActorRef (Π½Π΅ΠΊΠΈΠΉ Π°Π΄ΡΠ΅Ρ). ΠΠΊΡΠΎΡ Π ΠΌΠΎΠΆΠ΅Ρ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡΡ Π³Π΄Π΅ ΡΠ³ΠΎΠ΄Π½ΠΎ.
ΠΠΊΡΠΎΡ Π ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠΈΡΡΠΌΠΎ Π ΡΠ΅ΡΠ΅Π· ΡΠΈΡΡΠ΅ΠΌΡ (ActorSystem). Π‘ΠΈΡΡΠ΅ΠΌΠ° ΠΊΠ»Π°Π΄ΡΡ ΠΏΠΈΡΡΠΌΠΎ Π² ΠΏΠΎΡΡΠΎΠ²ΡΠΉ ΡΡΠΈΠΊ Π°ΠΊΡΠΎΡΠ° Π ΠΈ Β«Π±ΡΠ΄ΠΈΡΒ» Π°ΠΊΡΠΎΡ Π. ΠΠΊΡΠΎΡ Π Π±Π΅ΡΡΡ ΠΏΠΈΡΡΠΌΠΎ ΠΈΠ· ΡΡΠΈΠΊΠ° ΠΈ ΡΡΠΎ-ΡΠΎ Π΄Π΅Π»Π°Π΅Ρ.
ΠΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Ρ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΈΠ·Π»ΠΈΡΠ½Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎ, Π½ΠΎ ΠΌΠΎΠ΄Π΅Π»Ρ Π°ΠΊΡΠΎΡΠΎΠ² ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ Π»ΠΎΠΆΠΈΡΡΡ Π½Π° ΡΠ΅Π°Π»ΡΠ½ΡΠΉ ΠΌΠΈΡ, Π΅ΡΠ»ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ, ΡΡΠΎ Π°ΠΊΡΠΎΡΡ β ΡΡΠΎ Π»ΡΠ΄ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΡΠ΅Π½Ρ ΡΡΠΎ-ΡΠΎ Π΄Π΅Π»Π°ΡΡ Π² ΠΎΡΠ²Π΅Ρ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠ΅ ΡΠ°Π·Π΄ΡΠ°ΠΆΠΈΡΠ΅Π»ΠΈ.
ΠΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ ΡΠ΅Π±Π΅ ΠΎΡΡΠ° ΠΈ ΡΡΠ½Π°:
ΠΡΠ΅Ρ ΡΠ»ΡΡ ΡΡΠ½Ρ Π‘ΠΠ‘ΠΊΡ Β«Π£Π±Π΅ΡΠΈ Π² ΠΊΠΎΠΌΠ½Π°ΡΠ΅Β» ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΡΠ²ΠΎΠΈΠΌΠΈ Π΄Π΅Π»Π°ΠΌΠΈ. Π‘ΡΠ½ ΡΠΈΡΠ°Π΅Ρ Π‘ΠΠ‘ΠΊΡ ΠΈ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΡΠ±ΠΎΡΠΊΡ. ΠΡΠ΅Ρ ΡΠ΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ΠΈΠ³ΡΠ°Π΅Ρ Π² ΠΏΠΎΠΊΠ΅Ρ. Π‘ΡΠ½ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅Ρ ΡΠ±ΠΎΡΠΊΡ ΠΈ ΡΠ»ΡΡ Π‘ΠΠ‘ Β«ΠΠΎΡΠΎΠ²ΠΎΒ». ΠΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΡΠΎΡΡΠΎ, Π²Π΅ΡΠ½ΠΎ?
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ, ΡΡΠΎ ΠΎΡΠ΅Ρ ΠΈ ΡΡΠ½ Π½Π΅ Π°ΠΊΡΠΎΡΡ, Π° ΠΎΠ±ΡΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π΄ΡΡΠ³Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³Π°. ΠΡΠ΅Ρ Π΄ΡΡΠ³Π°Π΅Ρ ΡΡΠ½Π° Π·Π° ΠΌΠ΅ΡΠΎΠ΄ Β«ΡΠ±Π΅ΡΠΈ Π² ΠΊΠΎΠΌΠ½Π°ΡΠ΅Β» ΠΈ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π·Π° Π½ΠΈΠΌ ΠΏΠΎ ΠΏΡΡΠ°ΠΌ, ΠΎΠΆΠΈΠ΄Π°Ρ, ΠΏΠΎΠΊΠ° ΡΡΠ½ Π½Π΅ Π·Π°ΠΊΠΎΠ½ΡΠΈΡ ΡΠ±ΠΎΡΠΊΡ ΠΈ Π½Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΎΡΡΡ. ΠΠ³ΡΠ°ΡΡ Π² ΠΏΠΎΠΊΠ΅Ρ Π² ΡΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΡΠ΅Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ. Π ΡΡΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΠΌΠΎΠ΄Π΅Π»Ρ Π°ΠΊΡΠΎΡΠΎΠ² ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°ΡΠ΅Π»ΡΠ½ΠΎΠΉ.
Akka.NET
ΠΡΡ, ΡΡΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π½ΠΈΠΆΠ΅, ΡΠΏΡΠ°Π²Π΅Π΄Π»ΠΈΠ²ΠΎ ΠΈ Π΄Π»Ρ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ Akka Π΄Π»Ρ JVM, Π½ΠΎ Π΄Π»Ρ ΠΌΠ΅Π½Ρ C# Π±Π»ΠΈΠΆΠ΅, ΡΠ΅ΠΌ Java, ΠΏΠΎΡΡΠΎΠΌΡ Ρ Π±ΡΠ΄Ρ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Akka.NET.
ΠΡΠ°ΠΊ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Π΅ΡΡΡ Ρ Akka?
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ
Π£ Π°ΠΊΡΠΎΡΠΎΠ² Π΅ΡΡΡ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡ β Π΅Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ Π² Π²ΠΈΠ΄Π΅ Π΄Π΅ΡΠ΅Π²Π°. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π°ΠΊΡΠΎΡΠ° Π΅ΡΡΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Β«Π΄Π΅ΡΠΈΒ».
Akka.NET documentation Copyright 2013-2018 Akka.NET project
ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π°ΠΊΡΠΎΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Supervision strategy β ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ Ρ Β«Π΄Π΅ΡΠ΅ΠΉΒ» ΡΡΠΎ-ΡΠΎ ΠΏΠΎΡΠ»ΠΎ Π½Π΅ ΡΠ°ΠΊ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Β«ΠΏΡΠΈΠ±ΠΈΡΡΒ» Π°ΠΊΡΠΎΡ, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π° Π·Π°ΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ Π°ΠΊΡΠΎΡ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠΈΠΏΠ° ΠΈ ΠΏΠΎΡΡΡΠΈΡΡ Π΅ΠΌΡ ΡΡ ΠΆΠ΅ ΡΠ°Π±ΠΎΡΡ.
ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° Ρ ΡΠ΄Π΅Π»Π°Π» Π½Π° Akka.net CRUD ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ»ΠΎΠΉ Β«Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠΈΒ» ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½Π° Π°ΠΊΡΠΎΡΠ°Ρ . ΠΠ°Π΄Π°ΡΠ΅ΠΉ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π±ΡΠ»ΠΎ ΡΠ·Π½Π°ΡΡ, ΡΡΠΎΠΈΡ Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°ΠΊΡΠΎΡΡ Π² Π½Π΅ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ β ΡΠ΄Π΅Π»Π°ΡΡ Π»ΠΈ ΠΎΠ½ΠΈ ΠΆΠΈΠ·Π½Ρ Π»ΡΡΡΠ΅ ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡ Π΅ΡΡ Π±ΠΎΠ»ΠΈ.
ΠΠ°ΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ Π² Akka:
Π Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. Π’Π°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ Π°ΠΊΡΠΎΡΠΎΠ² Π² IoC ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅:
EchoActor β ΡΠ°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ Π°ΠΊΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ:
ΠΠ»Ρ ΡΠ²ΡΠ·ΠΈ Π°ΠΊΡΠΎΡΠΎΠ² Ρ Β«ΠΎΠ±ΡΡΠ½ΡΠΌΒ» ΠΊΠΎΠ΄ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° Ask:
ΠΡΠΎΠ³ΠΎ
ΠΠΎΡ ΠΈΠΌΠΈΡΠΈΠ² Ρ Π°ΠΊΡΠΎΡΠ°ΠΌΠΈ, ΠΌΠΎΠ³Ρ ΡΠΊΠ°Π·Π°ΡΡ:
Π§Π°ΡΡΡ 2: Π Π΅Π°ΠΊΡΠΈΠ²Π½ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ
Π ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΡΠΌ ΠΊ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΠΉ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΡΠ΅ΠΌΠ΅ β ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΡΠΌ ΠΏΠΎΡΠΎΠΊΠ°ΠΌ. ΠΡΠ»ΠΈ Ρ Π°ΠΊΡΠΎΡΠ°ΠΌΠΈ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π±ΠΎΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΠΎΠ²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ, ΡΠΎ Rx ΠΏΠΎΡΠΎΠΊΠΈ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΈΠ³ΠΎΠ΄ΡΡΡΡ ΠΊΠ°ΠΊ Π²ΠΎ ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π΅, ΡΠ°ΠΊ ΠΈ Π² Π±ΡΠΊΠ΅Π½Π΄Π΅. ΠΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π΅ΡΡΡ ΠΏΠΎΡΡΠΈ Π²ΠΎ Π²ΡΠ΅Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π― Π±ΡΠ΄Ρ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΠΏΡΠΈΠΌΠ΅ΡΡ Π½Π° RxJs, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² Π½Π°ΡΠ΅ Π²ΡΠ΅ΠΌΡ Π΄Π°ΠΆΠ΅ Π±ΡΠΊΠ΅Π½Π΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°ΠΌ ΠΏΠΎΡΠΎΠΉ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΡΠΎ-ΡΠΎ Π΄Π΅Π»Π°ΡΡ Π½Π° JavaScript.
Rx-ΠΏΠΎΡΠΎΠΊΠΈ Π΅ΡΡΡ Π΄Π»Ρ Π²ΡΠ΅Ρ
ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ
ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ
Π§ΡΠΎΠ±Ρ ΠΎΠ±ΡΡΡΠ½ΠΈΡΡ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ, Ρ Π½Π°ΡΠ½Ρ Ρ Pull ΠΈ Push ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ.
Single return value | Multiple return values | |
---|---|---|
Pull Synchronous Interactive | T | IEnumerable |
Push Asynchronous Reactive | Task | IObservable |
Pull ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ β ΡΡΠΎ ΡΠΎ, ΠΊ ΡΠ΅ΠΌΡ ΠΌΡ Π²ΡΠ΅ ΠΏΡΠΈΠ²ΡΠΊΠ»ΠΈ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ. Π‘Π°ΠΌΡΠΉ ΡΡΠΊΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ β ΠΌΠ°ΡΡΠΈΠ².
Π Π½ΡΠΌ ΡΠΆΠ΅ Π΅ΡΡΡ Π΄Π°Π½Π½ΡΠ΅, ΡΠ°ΠΌ ΠΎΠ½ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ Π½Π΅ ΠΏΠΎΠΌΠ΅Π½ΡΠ΅Ρ, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ΄Π°ΡΡ ΠΏΠΎ Π·Π°ΠΏΡΠΎΡΡ.
Π’Π°ΠΊΠΆΠ΅ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΡΡΠΎ-ΡΠΎ Π΄Π΅Π»Π°ΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡ ΠΊΠ°ΠΊ-ΡΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ.
Π ΡΠ΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ, ΡΡΠΎ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ Π½Π΅Ρ Π΄Π°Π½Π½ΡΡ , Π½ΠΎ ΠΎΠ½Π° ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠΎΠ±ΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ (Push). Π Π² ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ ΠΌΡ Π²ΡΡ ΡΠ°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΊ ΡΡΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π½ΡΠΆΠ½ΡΠ΅ ΡΡΠ°Π½ΡΡΠΎΡΠΌΠ°ΡΠΈΠΈ.
ΠΠΎΠ³Π΄Π° Π² source ΠΏΠΎΡΠ²ΠΈΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, 1, console.log Π²ΡΠ²Π΅Π΄Π΅Ρ βmy number is 1β.
ΠΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π½ΠΎΠ²Π°Ρ ΡΡΡΠ½ΠΎΡΡΡ β Subject (ΠΈΠ»ΠΈ Observable):
ΠΡΠΎ ΠΈ Π΅ΡΡΡ push-ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΡΠ»Π°ΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ ΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ.
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π² Π½Π΅ΠΉ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ²ΡΡΡΡ ΡΠΈΡΠ»Π° 1, 2 ΠΈ 3, ΡΠ΅ΡΠ΅Π· ΡΠ΅ΠΊΡΠ½Π΄Ρ 4, Π° Π·Π°ΡΠ΅ΠΌ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ Β«Π·Π°Π²Π΅ΡΡΠΈΡΡΡΒ». ΠΡΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΎΡΠΎΠ±ΡΠΉ ΡΠΈΠΏ ΡΠΎΠ±ΡΡΠΈΡ.
ΠΡΠΎΡΠ°Ρ ΡΡΡΠ½ΠΎΡΡΡ β ΡΡΠΎ Observer. ΠΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°ΡΡΡΡ Π½Π° ΡΠΎΠ±ΡΡΠΈΡ Subjectβa ΠΈ ΡΡΠΎ-ΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
Π’ΡΡ Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Subject ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠΎΠ².
ΠΡΠ³Π»ΡΠ΄ΠΈΡ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΠΎ, Π½ΠΎ ΠΏΠΎΠΊΠ° Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, Π΄Π»Ρ ΡΠ΅Π³ΠΎ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ. Π― Π΄Π°ΠΌ Π΅ΡΡ 2 ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ, ΡΠ°Π±ΠΎΡΠ°Ρ Ρ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΡΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΠΊΠ°ΠΆΡ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈ Π² ΠΊΠ°ΠΊΠΈΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ ΡΠ°ΡΠΊΡΡΠ²Π°Π΅ΡΡΡ Π²Π΅ΡΡ ΠΈΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π».
Cold observables
Hot observables
Π ΠΊΠ°ΠΊΠΈΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ?
ΠΠΎΠ³Π΄Π° Π΅ΡΡΡ ΠΏΠΎΡΠΎΠΊ Π΄Π°Π½Π½ΡΡ , ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΉ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π²Π²ΠΎΠ΄. ΠΠ»ΠΈ Π»ΠΎΠ³ΠΈ ΠΈΠ· ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ°. Π ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Ρ Π²ΠΈΠ΄Π΅Π» ΡΠ°ΠΌΠΎΠΏΠΈΡΠ½ΡΠΉ Π»ΠΎΠ³Π³Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ±ΠΈΡΠ°Π» ΡΠΎΠ±ΡΡΠΈΡ Π·Π° N ΡΠ΅ΠΊΡΠ½Π΄, Π° Π·Π°ΡΠ΅ΠΌ Π΅Π΄ΠΈΠ½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°Π» Π²ΡΡ ΠΏΠ°ΡΠΊΡ. ΠΠΎΠ΄ Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡΠ° Π·Π°Π½ΠΈΠΌΠ°Π» ΡΡΡΠ°Π½ΠΈΡΡ. ΠΡΠ»ΠΈ Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ Rx ΠΏΠΎΡΠΎΠΊΠΈ, ΡΠΎ ΡΡΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅:
βRxJs Reference / Observable, documentation licensed under CC BY 4.0.
(ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΈ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ, ΠΏΠΎΡΡΠ½ΡΡΡΠΈΠ΅, ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΡΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ)
Π, Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
Π Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΠ΅ ΠΌΡΡΠΈΠ½ΡΡ ΠΆΠ΅ΡΡΠΎΠ² ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Rx ΠΏΠΎΡΠΎΠΊΠΎΠ²
Π ΡΡΠ°ΡΠΎΠΉ ΠΠΏΠ΅ΡΠ΅ ΠΈΠ»ΠΈ Π΅Ρ Π΄ΡΡ ΠΎΠ²Π½ΠΎΠΌ Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠ΅ β Vivaldi β Π±ΡΠ»ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠΌ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΌΡΡΠΈΠ½ΡΡ ΠΆΠ΅ΡΡΠΎΠ².
Π’ΠΎ Π΅ΡΡΡ Π½ΡΠΆΠ½ΠΎ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°ΡΡ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ ΠΌΡΡΡΡ Π²Π²Π΅ΡΡ /Π²Π½ΠΈΠ·, Π²ΠΏΡΠ°Π²ΠΎ/Π²Π»Π΅Π²ΠΎ ΠΈ ΠΈΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ. ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π±Π΅Π· Rx ΠΏΠΎΡΠΎΠΊΠΎΠ², Π½ΠΎ ΠΊΠΎΠ΄ Π±ΡΠ΄Π΅Ρ ΡΠ»ΠΎΠΆΠ½ΡΠΌ ΠΈ ΡΡΡΠ΄Π½ΠΎΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠΌ.
Π Π²ΠΎΡ ΠΊΠ°ΠΊ ΡΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Ρ Rx ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ:
ΠΠ°ΡΠ½Ρ Ρ ΠΊΠΎΠ½ΡΠ° β Π·Π°Π΄Π°ΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈ Π² ΠΊΠ°ΠΊΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅ Ρ Π±ΡΠ΄Ρ ΠΈΡΠΊΠ°ΡΡ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ:
ΠΡΠΎ Π΅Π΄ΠΈΠ½ΠΈΡΠ½ΡΠ΅ Π²Π΅ΠΊΡΠΎΡΡ ΠΈ ΠΈΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ.
ΠΠ°Π»Π΅Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠΈΡ ΠΌΡΡΠΈ Π² Rx ΠΏΠΎΡΠΎΠΊΠΈ. ΠΠΎ Π²ΡΠ΅Ρ Rx Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°Ρ Π΅ΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΠΏΡΠ΅Π²ΡΠ°ΡΠ΅Π½ΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΈΠ²Π΅Π½ΡΠΎΠ² Π² Observables.
ΠΠ°Π»Π΅Π΅, Ρ Π³ΡΡΠΏΠΏΠΈΡΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΌΡΡΠΈ ΠΏΠΎ 2 ΠΈ Π½Π°Ρ ΠΎΠΆΡ ΠΈΡ ΡΠ°Π·Π½ΠΈΡΡ, ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΌΡΡΠΈ.
Π Π³ΡΡΠΏΠΏΠΈΡΡΡ ΡΡΠΈ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΎΠ±ΡΡΠΈΡ ‘mousedown’ ΠΈ ‘mouseup’.
Π€ΡΠ½ΠΊΡΠΈΡ concat Π²ΡΡΠ΅Π·Π°Π΅Ρ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΊΠΎΡΠΎΡΠΊΠΈΠ΅ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ ΠΈ Π³ΡΡΠΏΠΏΠΈΡΡΠ΅Ρ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ, ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡΠΈΠ΅ ΠΏΠΎ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ.
ΠΡΠ»ΠΈ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΎΡΠΈ X ΠΈΠ»ΠΈ Y ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΊΠΎΡΠΎΡΠΊΠΎΠ΅, ΠΎΠ½ΠΎ ΠΎΠ±Π½ΡΠ»ΡΠ΅ΡΡΡ. Π Π·Π°ΡΠ΅ΠΌ ΠΎΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΡΡΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΠΊ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΠΎΠ»ΡΡΠ°ΡΡΡΡ Π΅Π΄ΠΈΠ½ΠΈΡΠ½ΡΠ΅ Π²Π΅ΠΊΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΠΈΡΠΊΠ°Π»ΠΈ.
ΠΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ sequenceEqual ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°Π²Π½ΠΈΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌΠΈ ΠΈ, Π΅ΡΠ»ΠΈ Π΅ΡΡΡ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ, ΠΊΡΠΎΠΌΠ΅ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ ΠΆΠ΅ΡΡΠΎΠ², Π·Π΄Π΅ΡΡ Π΅ΡΡΡ Π΅ΡΡ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΊΠ°ΠΊ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΡΡ , ΡΠ°ΠΊ ΠΈ Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ ΠΌΡΡΠΈ Π½Π° HTML canvas. Π§ΠΈΡΠ°Π΅ΠΌΠΎΡΡΡ ΠΊΠΎΠ΄Π° ΠΎΡ ΡΡΠΎΠ³ΠΎ Π½Π΅ ΡΡΡΠ°Π΄Π°Π΅Ρ.
ΠΠ· ΡΠ΅Π³ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π΅ΡΡ ΠΎΠ΄Π½ΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ β ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π», Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Rx ΠΏΠΎΡΠΎΠΊΠΎΠ², ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π»Π΅Π³ΠΊΠΎ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½.